xmlns是XML Namespaces的缩写
普通的xml解析:
xml示例:
<result>
<message>
<title>Good</title>
</message>
<message>
<title>Better</title>
</message>
<message>
<title>Best</title>
</message>
</result>
dom4j:
Document resultDoc = null;
try {
resultDoc = DocumentHelper.parseText(result);
} catch (DocumentException e) {
e.printStackTrace();
}
Element rootEle = resultDoc.getRootElement();
List<Node> mesList = rootEle.selectNodes("//result/message");
带有xmlns的xml解析:
xml示例:
<result xmlns="http://www.xxx.com/xxxx/xxxx" >
<message>
<title>Good</title>
</message>
<message>
<title>Better</title>
</message>
<message>
<title>Best</title>
</message>
</result>
dom4j:
Document resultDoc = null;
try {
resultDoc = DocumentHelper.parseText(result);
} catch (DocumentException e) {
e.printStackTrace();
}
Element rootEle = resultDoc.getRootElement();
String nsUri = rootEle.getNamespaceURI();
Map nsMap = new HashMap();
nsMap.put("rootNs", nsUri);
XPath mesXpath = resultDoc.createXPath("//rootNs:result/rootNs:message");
mesXpath.setNamespaceURIs(nsMap);
List<Node> mesList = mesXpath.selectNodes(resultDoc);
当然,无论根节点有没有命名空间,第二种方式都适用。
分享到:
相关推荐
在处理带有命名空间的XML文件时,DOM4J库显得尤为重要,因为XML命名空间是XML规范中一个关键的概念,用于避免元素名称的冲突。 XML命名空间的引入是为了在一个文档中使用来自不同来源的元素和属性。它们通过URI...
在处理带有命名空间的XML时,DOM4J提供了一套完整的解决方案。 首先,我们需要理解XML命名空间的基本概念。命名空间通过使用一个URI(Uniform Resource Identifier)来唯一标识一组元素和属性。它们通常以`xmlns:`...
DOM4J不仅兼容DOM和SAX,还提供了额外的功能,如自动命名空间处理、文档验证等。 DOM4J的一些特点包括: - **轻量级**:DOM4J相比标准的DOM实现更加轻量,消耗更少的内存。 - **易用性**:DOM4J提供了一套直观且...
- **命名空间支持**:处理带有命名空间的XML文档。 - **XPath支持**:利用XPath快速定位XML节点。 - **事件驱动解析**:结合SAX或StAX,实现低内存占用的XML解析。 在实际开发中,Dom4j的灵活性和易用性使其成为...
4. **Namespace**: 处理命名空间,使处理带有前缀的XML元素变得简单。 5. **XPath**: 支持XPath表达式,允许我们通过简洁的字符串来查找和操作XML文档的任何部分。 6. **Document**: 整个XML文档的根对象,包含了...
5. **命名空间(Namespace)支持**:对于包含命名空间的XML文档,DOM4J提供了很好的支持,可以方便地处理带有命名空间的元素和属性。 6. **事件处理**:虽然DOM4J主要基于DOM模型,但同时也支持SAX事件驱动的解析,...
7. **命名空间(Namespace)支持**:XML文档经常包含命名空间,DOM4J提供了对这些命名空间的处理,包括注册、查找和操作带有命名空间的元素。 8. **序列化与反序列化**:DOM4J不仅可以将XML文档解析为内存中的对象...
6. **命名空间支持**:DOM4J全面支持XML命名空间,使得处理带有命名空间的XML文档变得简单。 7. **事件处理**:DOM4J的EventSupport接口允许开发者实现自定义的事件监听器,以便在解析或修改XML时执行特定操作。 8...
比如,Element对象对应XML的元素节点,Attribute对象表示元素的属性,Namespace对象则管理命名空间,使得处理带有命名空间的XML文档变得简单。 在实际开发中,DOM4J不仅可以用于解析XML,还可以用于生成XML文档。...
7. **命名空间支持**: DOM4J 具有完整的命名空间处理机制,能够处理带有命名空间的XML文档。 **DOM4J的应用场景** DOM4J 在各种Java应用中都有广泛的应用,包括但不限于: - Web服务:在构建和消费Web服务时,DOM...
7. **命名空间支持**:DOM4J对XML命名空间提供了良好的支持,方便处理带有命名空间的XML文档。 在实际开发中,DOM4J常被用于Java Web应用、数据交换、配置文件处理等领域。比如,在Spring框架中,DOM4J就用于解析和...
DOM4J提供了注册命名空间的方法,以正确解析带有前缀的XPath表达式。 总结来说,Demo4j虽然不直接支持XPath,但通过结合DOM4J这样的XML库,我们可以方便地在Java应用程序中利用XPath的强大功能。通过理解XPath的...
- **支持命名空间**:DOM4J处理XML命名空间的能力强,可以方便地处理带有命名空间的XML文档。 - **与Spring框架的集成**:Spring框架广泛使用DOM4J进行XML配置文件的解析,使其在企业级应用中得到广泛应用。 3. *...
5. **Namespace(命名空间)**:处理带有命名空间的XML文档时,DOM4J提供了对命名空间的支持。 三、主要功能 1. **解析XML**:DOM4J可以使用SAX或DOM解析器读取XML文件,生成相应的Document对象。 2. **创建XML**:...
DOM4J支持处理命名空间,通过`Namespace`类和`QName`类,可以方便地与带有命名空间的XML元素交互。 除了DOM4J,压缩包中还包含了一个`jaxen-1.1-beta-6.jar`文件,这是Jaxen库的早期版本。Jaxen提供了一个统一的API...
6. **属性和命名空间**:DOM4J对XML属性和命名空间有很好的支持,可以方便地处理带有属性和命名空间的XML元素。 在《JAVA高手解析XML配置文件的读取操作.doc》中,可能会深入讲解如何利用DOM4J读取和操作XML配置...
- **Namespace支持**:DOM4J对XML命名空间有良好的支持,处理带命名空间的XML文档更加便捷。 4. **DOM4J的使用示例** - 解析XML文档: ```java File file = new File("example.xml"); Document document = ...
- **命名空间(Namespace)操作**:处理 XML 中的命名空间,确保正确解析和创建带命名空间的元素。 【Qname 介绍】 QName( Qualified Name)是 XML 中的限定名称,包含一个前缀和一个本地名称,用于标识命名空间...
4. **命名空间支持**:DOM4J对XML命名空间提供了良好的支持,可以方便地处理带有命名空间的XML文档,避免了命名冲突的问题。 5. **XPath支持**:DOM4J集成XPath(XML Path Language),这是一门强大的查询语言,...
5. **命名空间支持**:对于包含命名空间的XML文档,DOM4J提供了很好的处理机制,使得处理带有命名空间的XML变得简单。 6. **事件处理**:DOM4J允许注册事件监听器,可以监听和处理XML解析过程中的事件,如开始元素...