怎么解析XML,要源码

wanwusheng1 2012-07-20 12:45:39
怎么解析XML,要源码
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-07-20
  • 打赏
  • 举报
回复
可以用开源组件,比如 dom4j 啥的,也有性能更高的。

不过本质都差不多,用Xpath查找或者按节点依次便利。

这里有个稍微复杂的参考(需要dom4j):

String str = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">"
+ "<soap:Body><ACIC_MessageBrokerService xmlns=\"http://www.ACIC.MessageBrokerService.com/\">"
+ "<ServiceID>0428000001</ServiceID>" + "<obj>" + "<anyType xsi:type=\"xsd:string\">par1</anyType>"
+ "<anyType xsi:type=\"xsd:int\">0</anyType>" + "<anyType xsi:type=\"xsd:boolean\">true</anyType>"
+ "</obj></ACIC_MessageBrokerService>" + "</soap:Body>" + "</soap:Envelope>";
Document doc = DocumentHelper.parseText(str);
Element root = doc.getRootElement();
System.out.println(root);
Element node = root.element("Body").element("ACIC_MessageBrokerService").element("ServiceID");
System.out.println(node.getName() + ": " + node.getText());

Element obj = root.element("Body").element("ACIC_MessageBrokerService").element("obj");
List<Element> types = obj.elements("anyType");
for (Element elem : types) {
System.out.println(elem.getName() + ": " + elem.getText());
}

System.out.println(root.selectSingleNode("soap:Body"));
System.out
.println(doc
.selectSingleNode("//*[local-name()='ServiceID' and namespace-uri()='http://www.ACIC.MessageBrokerService.com/']"));

List<Element> lstType = doc
.selectNodes("//*[local-name()='anyType' and namespace-uri()='http://www.ACIC.MessageBrokerService.com/']");
for (Element elem : lstType) {
System.out.println(elem.getName() + ": " + elem.getText());
}
di_wq 2012-07-20
  • 打赏
  • 举报
回复
InputStream in = Controller.class.getClassLoader().getResourceAsStream("./XML的文件名");
Properties per = new Properties();
per.load(in);
String myAction = per.getProperty(键值);
得到的就是value了
brightyq 2012-07-20
  • 打赏
  • 举报
回复
dom4j解析xml文件,读写操作。
网上有铺天盖地的例子。
http://www.cnblogs.com/visoeclipse/archive/2009/08/26/1554186.html

http://xhy0422.iteye.com/blog/50235

dom4j.jar下载地址:
http://sourceforge.net/projects/dom4j

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧