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


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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值