`
shendixiong
  • 浏览: 398663 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

dom4j获取指定节点数据

阅读更多

现在我有一个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());
		}
	}

 

 

1
0
分享到:
评论

相关推荐

    dom4j 解析(读取) xml 节点数据

    在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你已经下载了必要的依赖,即DOM4J库。通常,这将是一个名为`dom4j-x.x.x.jar`的文件,其中x.x.x是DOM4J的版本号...

    使用DOM4J对XML文件操作-添加、修改、删除、获取元素节点

    在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...

    dom4j需要的包

    4. **XML Schema验证**:DOM4J可以对XML文档进行Schema验证,确保文档符合指定的XML Schema定义,保证数据的准确性和一致性。 5. **转换XML到其他格式**:DOM4J可以将XML转换为Java对象,也可以将Java对象转换为XML...

    Dom4j常用jar包

    - `Element`类代表XML的元素节点,可以通过`getElementByTagName()`, `elements()`等方法获取指定标签名的元素或所有子元素。 - `Attribute`类表示属性,可通过`getAttributes()`获取元素的所有属性,或用`...

    dom4j---xml解析jar包

    3. **XPath支持**:DOM4J提供了对XPath表达式的强大支持,可以方便地定位XML文档中的任何节点。 4. **轻量级**:DOM4J的设计目标是轻便且高效,它不依赖于大型的JDK库,如JAXP,使得其可以在各种环境下游刃有余。 *...

    dom4j用到的xpath\dom4j等一系列jar包

    6. **XML Schema支持**:DOM4J可以与XML Schema进行交互,验证XML文档是否符合指定的模式。 7. **JAXB集成**:DOM4J可以与Java Architecture for XML Binding(JAXB)集成,实现XML与Java对象之间的映射。 8. **转换...

    dom4j使用简介

    - **集合框架集成**:DOM4J 结构基于 Java 集合框架,使得操作 XML 节点如操作 Java 对象一般方便。 - **DOM 支持**:除了标准的 DOM API,DOM4J 还提供了更简洁的接口来操作 DOM 树。 - **SAX 支持**:DOM4J ...

    DOM4J_xpath

    13. **NodeFilter**: 定义在DOM4J节点中产生的一个过滤器或谓词的行为。 14. **ProcessingInstruction**: 定义XML处理指令。 15. **Text**: 定义XML文本节点。 16. **Visitor**: 用于实现访问者模式。 17. **XPath**...

    DOM4J从基础到精通

    一旦DOM4J树构建完成,就可以通过遍历或查询来获取节点: ```java // 获取根元素 Element root = doc.getRootElement(); // 获取子节点 List&lt;Element&gt; elements = root.elements("子元素名称"); ``` ##### 3. ...

    dom4j源代码

    6. **Element和Attribute的扩展**:DOM4J的Element和Attribute类提供了许多方便的方法,如添加子元素、获取属性值等,使得XML处理更加直观。 7. **集合框架集成**:DOM4J的API设计与Java集合框架紧密结合,使得XML...

    dom4j解析xml

    本文将详细介绍如何使用DOM4J解析XML文档,并演示如何将数据库中的数据存储到XML文件中。 #### 一、DOM4J的基本使用 ##### 1.1 读取XML文件 DOM4J提供了多种方法来读取XML文件。其中,最常用的方法是通过`...

    dom4j多节点定位解析,及API,JAR

    4. **子节点操作**:对于选定的节点,可以使用`element.elements()`获取其所有子元素,或使用`element.element("childElementName")`获取指定名称的子元素。 **DOM4J API**: DOM4J的API非常丰富,以下是一些常用的...

    dom4j 和xpath

    DOM4J和XPath是XML处理的得力工具,DOM4J为XML文档提供了一种直观且高效的处理方式,而XPath则提供了强大的查询语言,两者结合可以更便捷地进行XML数据的处理和分析。在Java项目中,使用DOM4J配合XPath可以极大地...

    dom4j帮助文档

    在实际应用中,DOM4J常用于配置文件的读写、数据交换、XML文档的生成等场景。例如,Web服务的客户端和服务端可能会使用DOM4J解析和生成SOAP消息;Spring框架中也大量使用DOM4J处理配置文件;在企业级应用中,DOM4J也...

    dom4j从基础到精通

    四、使用 dom4j 修改 XML 文件 修改 XML 文件主要包括添加、删除或更新节点和属性。例如,添加子元素: ```java Element child = factory.createElement("child"); rootElement.add(child); ``` 删除元素: ```...

    dom4j1.6.1

    1. **XML数据的读取**:通过DOM4J,开发者可以轻松地读取XML文件,获取其结构和内容。 2. **XML数据的写入**:创建新的XML文档,或者修改现有XML文件的结构和内容。 3. **XML数据的搜索**:利用XPath表达式快速定位...

    dom4j解析案例

    这个例子展示了如何使用DOM4J解析XML,提取指定节点(“item”),并将属性和文本内容存储在Map中。实际应用中,你可能需要根据实际的XML结构来调整路径选择和数据处理逻辑。 总之,DOM4J是处理XML的强大工具,尤其...

    dom4j教程.pdf

    #### 四、DOM4j使用示例 下面是一个简单的示例,演示如何使用DOM4J来读取XML文件: ```java import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4jExample {...

    dom4j自动解释xml文件

    DOM4J是一个强大的Java库,专门用于处理XML...通过理解XML的结构和DOM4J的API,开发者可以高效地读取、解析和操作XML数据,实现各种复杂的业务逻辑。在实际项目中,DOM4J的灵活性和性能使其成为处理XML的首选工具之一。

Global site tag (gtag.js) - Google Analytics