`
raozhengyong
  • 浏览: 15807 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

用JDom生成和解析字符型的XML格式内容

    博客分类:
  • Java
阅读更多
package com.test;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
/**
 * 用JDom生成和解析字符型的XML格式内容
 * @author rzy
 * @version 1.0
 * */
public class JDomXmlDoc
{
	/**
	 * 下行信息MT请求
	 * @param username 用户名
	 * password 密码
	 * transcationID 通信ID
	 * msg_time	信息时间
	 * msgID 信息唯一ID
	 * Msg_type 信息类型
	 * Src_addr 接收信息的通道号
	 * Dst_addr 手机号码
	 * LinkID linkid
	 * ServiceIOD 产品ID
	 * Content 下行信息内容
	 * pushurl url地址
	 * @return docXml xml格式的下行信息MT请求
	 * */
	public String MTSubmitReq(String username,String password,String transcationID,String msg_time,String msgID,String Msg_type,String Src_addr,String Dst_addr,String LinkID,String ServiceIOD,String content,String pushurl)
	{
		Document doc = new Document();
		Element root = new Element("root");
		root.addContent(new Element("username").setText(username));
		root.addContent(new Element("password").setText(password));
		root.addContent(new Element("transcationID").setText(transcationID));
		root.addContent(new Element("msg_time").setText(msg_time));
		root.addContent(new Element("msgID").setText(msgID));
		root.addContent(new Element("Msg_type").setText(Msg_type));
		root.addContent(new Element("Src_addr").setText(Src_addr));
		root.addContent(new Element("Dst_addr").setText(Dst_addr));
		root.addContent(new Element("LinkID").setText(LinkID));
		root.addContent(new Element("ServiceIOD").setText(ServiceIOD));
		root.addContent(new Element("content").setText(content));
		root.addContent(new Element("pushurl").setText(pushurl));
		doc.addContent(root);
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		PrintWriter pw = new PrintWriter(baos);  //用PrintWriter可以解决生成编码为UTF-8格式的XML内容出现中文乱码的问题
		Format format = Format.getPrettyFormat();
		format.setEncoding("UTF-8");
		XMLOutputter docWiter = new XMLOutputter();
		docWiter.setFormat(format);
		try {
			docWiter.output(doc, pw);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		String docXml = baos.toString();        
        return docXml;
	}
	/**
	 * 解析字符格式的xml内容
	 * @param docXml 字符格式的xml内容
	 * */
	public void MTSubmitRsp(String docXml)
	{
		SAXBuilder builder = new SAXBuilder();
		StringReader sr = new StringReader(docXml);
		Document doc = new Document();
		try {
			doc = builder.build(sr);
		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		Element foo = doc.getRootElement();
		List list = foo.getChildren();
		for(int i = 0;i<list.size();i++)
		{
			Element el = (Element) list.get(i);
			System.out.println(el.getName()+":"+el.getText());
		}
	}
       //示例测试
	public static void main(String[] args)
	{
		JDomXmlDoc mxt = new JDomXmlDoc();
		String str = mxt.MTSubmitReq("admin", "123456", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12");
		System.out.println(str);
		mxt.MTSubmitRsp(str);
	}
}

生成xml格式内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <username>admin</username>
  <password>123456</password>
  <transcationID>3</transcationID>
  <msg_time>4</msg_time>
  <msgID>5</msgID>
  <Msg_type>6</Msg_type>
  <Src_addr>7</Src_addr>
  <Dst_addr>8</Dst_addr>
  <LinkID>9</LinkID>
  <ServiceIOD>10</ServiceIOD>
  <content>11</content>
  <pushurl>12</pushurl>
</root>
解析xml格式内容如下:
username:admin
password:123456
transcationID:3
msg_time:4
msgID:5
Msg_type:6
Src_addr:7
Dst_addr:8
LinkID:9
ServiceIOD:10
content:11
pushurl:12
分享到:
评论

相关推荐

    DOM、SAX、DOM4J、JDOM、StAX生成XML并返回XML字符串形式

    生成XML字符串时,JDOM提供了一套直观的API来构造和序列化XML文档。 5. StAX (Streaming API for XML) StAX是Java提供的一个流式解析API,它介于DOM和SAX之间。像SAX一样,StAX也是事件驱动的,但它允许程序员以拉...

    Jdom解析XML

    4. 输出XML,使用`XMLOutputter`类将`Document`对象转换为字符串或写入文件。 **示例代码** ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.input.SAXBuilder; import org.jdom2...

    xml 解析(Jdom代码)

    例如,可以添加新元素、删除元素、修改属性值,然后使用`OutputFormat`和`Transformer`将DOM树转换回XML字符串或写入文件。 **5. 性能与优化** 虽然JDOM提供了方便的API,但其性能相对较低,因为整个XML文档会一次...

    jdom从数据库和xml拿数据生成xml

    4. **XML解析与生成**:JDOM提供API来解析XML文件,将XML文档转化为内存中的对象结构,这使得可以方便地遍历和修改XML内容。同样,也可以使用JDOM来生成新的XML文档,包括从数据库中提取的数据。 5. **JDOM基本使用...

    jdom-1.1.zip jdom-1.1.jar jdom.jar jdom库 jdom操作xml

    在Java应用程序中,JDOM扮演着核心角色,允许开发者以面向对象的方式处理XML数据,极大地简化了XML的解析和生成过程。 JDOM-1.1是该库的一个版本,它包含了对XML标准的全面支持以及一些性能优化。`jdom-1.1.zip`是...

    生成+解析XML

    - DOM:通过DocumentBuilderFactory创建Document对象,然后使用createElement、setAttribute等方法构建XML结构,最后用Transformer将Document转换成字符串或写入文件。 - SAX:SAX主要用于解析,但也可以用于生成XML...

    xml在java环境中生成解析

    在实际项目中,生成XML文件通常涉及到构建Document对象,添加Element、Attribute等节点,然后使用Transformer将Document对象转换成XML字符串或直接写入文件。解析XML时,你可以通过解析器读取文件,然后遍历Element...

    dom4J生成xml、解析xml、生成xml文件实例

    - **保存XML**:最后,使用`Document`对象的`asXML()`方法将XML结构转换成字符串,再写入文件。 例如,`CreateXml.java`可能包含以下代码片段: ```java DocumentFactory factory = DocumentFactory.getInstance()...

    解析xml的jar包

    - 修改完成后,使用`Transformer`将`Document`对象转换回XML字符串或写入文件。 5. **处理命名空间**: - JDOM支持XML命名空间,`Namespace`类用于定义命名空间,可以附加到元素上。 - 解析带有命名空间的XML时...

    DOM、JDOM、DOM4J解析XML实例.pdf

    4. **写入文件**:最后使用 `Transformer` 将构建好的 `Document` 对象转换为 XML 字符串并保存到文件中。 #### JDOM 和 DOM4J 解析 XML **JDOM** 是一种轻量级的 API,它为 Java 开发者提供了简单直观的方式来...

    Dom4j解析和生成XML文档

    生成XML文档时,DOM4J允许我们通过创建`Element`、`Attribute`等对象,构建一个内存中的XML结构,然后将其转换为XML字符串或写入文件。 1. 创建`Document`对象:`Document document = DocumentFactory.getInstance...

    jdom教程

    3. **XML输出**:使用`org.jdom.output.Format`和`XMLOutputter`类将`Document`对象转换为XML字符串或写入文件。 ```java XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat()); outputter.output...

    jdom2.0.4完整包+doc文档

    通过`XMLOutputter`类,可以将修改后的`Document`对象转换回XML字符串或写入文件。 **JDOM与其他解析器比较** 与其他解析器如DOM、SAX、StAX相比,JDOM有其独特的优势: - **易用性**:JDOM的API设计更贴近Java...

    JDOM v1.0 API

    JDOM在各种Java项目中都有广泛的应用,特别是在XML数据的解析、生成和处理上。例如: - **配置文件处理**:许多Java应用程序使用XML作为配置文件,JDOM可以帮助读取、修改这些配置。 - **Web服务**:在SOAP或...

    Jdom处理listOrMap

    - **解析**: 使用`SAXBuilder`或`DOMBuilder`从XML字符串或文件创建`Document`对象。然后,可以遍历文档结构,访问列表和映射。 - **序列化**: 有了`Document`对象,可以使用`XMLOutputter`将其转换回XML字符串或...

    jdom读写xml说明

    JDOM提供了`XMLOutputter`类来将`Document`对象转换为XML字符串或写入文件。以下是一个写入XML文件的示例: ```java import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.output.Format; import...

    Java生成和解析XML格式文件和字符串的实例代码

    本文将深入探讨如何使用Java生成和解析XML格式的文件和字符串,主要关注DOM方法,同时也会提及其他解析方式。 1、基础知识: Java解析XML主要有四种方法: - DOM(Document Object Model):W3C提供的接口,将整个...

    完整JDOM架包

    4. 使用DocumentBuilder将Document对象转换为XML字符串。 例如: ```java Element root = new Element("root"); root.setAttribute("attr", "value"); Element child = new Element("child"); root.addContent...

    jdom - 2.0.1

    2. **XML 文档读取**:JDOM 可以解析 XML 文件,并将其转换为内存中的文档对象,开发者可以通过遍历这些对象来访问和修改文档内容。 3. **XML 文档修改**:通过对 JDOM 对象的操作,可以直接修改 XML 文档的内容,...

    JDOM软件下载

    4. **序列化**:JDOM可以将构建好的XML Document对象转换回字符串,或者写入到文件或输出流中。 **JDOM的优势** 1. **性能**:JDOM完全用Java编写,无需依赖其他外部库,这使得它在Java平台上运行高效。 2. **...

Global site tag (gtag.js) - Google Analytics