现在我有一个xml,如下
String xml = "<message id='GnIWm-10' to='jiangwan@dison-pc' from='test06@dison-pc/Smack' type='chat'><body/><thread>9dO8t1</thread><properties xmlns='http://www.jivesoftware.com/xmlns/xmpp/properties'><property><name>requestmenu</name><value type='string'/></property></properties></message>";
在网上搜索的时候,发现dom4j,可以使用如下方法:
Document doc = DocumentHelper.parseText(xml); List<org.dom4j.Element> list = doc.selectNodes(nodeName);
按照网上的说法,我能获取message 下的子节点body和thread两个,但就是无法获取到properties,它们之间的区别只是多了xmlns而已。代码如下
Document doc = DocumentHelper.parseText(xml); List<org.dom4j.Element> list doc.selectNodes("/message/body");
最后发现,dom4j本身有一个方法获取其path(getUniquePath)。我通过一层层获取其path知道了他的具体地址:
Document doc = DocumentHelper.parseText(xml); List<org.dom4j.Element> list = doc.selectNodes("/message/*[name()='properties']/*[name()='property']/*[name()='name']");
最后样例如下:
private static void selectXML() throws Exception{ String xml = "<message id='GnIWm-10' to='jiangwan@dison-pc' from='test06@dison-pc/Smack' type='chat'><body/><thread>9dO8t1</thread><properties xmlns='http://www.jivesoftware.com/xmlns/xmpp/properties'><property><name>requestmenu</name><value type='string'/></property></properties></message>"; Document doc = DocumentHelper.parseText(xml); List<org.dom4j.Element> list = doc.selectNodes("/message/*[name()='properties']/*[name()='property']/*[name()='name']"); for (org.dom4j.Element element : list) { System.out.println("name : "+ element.getName() + "->UniquePath:" + element.getUniquePath() + "->value:"+element.getTextTrim()); } }
相关推荐
此方法解析xml时,不受xml层级的限制。文件中包含了说明文档,java类,以及所使用到的*.jar。并对代码做了注释让你一目了然……
dom4j常用方法 i.SAXReader sr = new SAXReader(); 生成解析器对象 ii.解析器对象.read(file对象); 解析文件生成Document对象 iii.文档对象.getRootElement() 获取跟元素节点 iv.元素节点.elements() 获取到指定...
dom4j解析节点名称和值,放入一个string类型的xml字符串输出标签对应的名称以及值的map
使用DOM4J对XML文件操作-添加、修改、删除、获取元素节点
利用DOM4J解析SOAP中的各个元素的值,在SOAP消息的收发中可以有一点借鉴的地方
超全面javaweb教程第6天-_12_使用dom4j实现删除节点的操作
删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点删除DOM节点...
dom4j dom4j dom4j dom4j dom4j dom4j
DOM4J jar包 所有的包 xml解析 dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1 导入直接使用
org.dom4j.Branch:Branch为能够包含子节点的节点如XML元素和文档定义了一个公共为 org.dom4j.CDATA : CDATA定义了XML CDATA区域 org.dom4j.CharacterData: CharacterData是一个标识接口,标识基于字符的节点。 org....
赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...
JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源代码 dom4j-1.6.1JavaEE源...
赠送jar包:dom4j-2.1.1.jar; 赠送原API文档:dom4j-2.1.1-javadoc.jar; 赠送源代码:dom4j-2.1.1-sources.jar; 赠送Maven依赖信息文件:dom4j-2.1.1.pom; 包含翻译后的API文档:dom4j-2.1.1-javadoc-API文档-...
NULL 博文链接:https://hbiao68.iteye.com/blog/2025074
dom4j-1.6.1.zip与 dom4j-2.0.0-ALPHA-2.jar
Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc Dom4j解析XML文档.doc
maven dom4j 1.6.1安装包
dom4j帮助文档 官方API All Classes Packages org.dom4j org.dom4j.bean org.dom4j.datatype org.dom4j.dom org.dom4j.dtd org.dom4j.io org.dom4j.jaxb org.dom4j.rule org.dom4j.rule.pattern org.dom...
超全面javaweb教程第6天-_09_使用dom4j实现在在特定位置添加节点的操作
dom4j-1.6.1.jar,Dom4j是一个Java的XML API接口,是jdom的进化版,dom4j基本用来读写xml文件,是一个十分优秀的JavaXML API接口