0 0

dom4j解析SOAP型xml文件命名空间的问题15

po.xml:

 

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Body>
        <ns1:LST_SBRResponse xmlns:ns1="http://www.xxx.com/a/">
            <ns1:Result>
                <ns1:ResultCode>0</ns1:ResultCode>
                <ns1:ResultDesc>Operation succeeded.</ns1:ResultDesc>
                <ns1:ResultData>
                    <ns1:Table1>
                        <ns1:Item>
                            <ns1:GRPIDX>65535</ns1:GRPIDX>
                            <ns1:SCADDRIDX>65535</ns1:SCADDRIDX>
                            <ns1:CDNOCB>0</ns1:CDNOCB>
                            <ns1:PBTSBR>
                                <ns1:PBXID />
                                <ns1:ISPILOT>0</ns1:ISPILOT>
                                <ns1:ISSHARESRV>0</ns1:ISSHARESRV>
                            </ns1:PBTSBR>
                            <ns1:KVALUE>255</ns1:KVALUE>
                            <ns1:INPFIDX>65535</ns1:INPFIDX>
                        </ns1:Item>
                    </ns1:Table1>
                </ns1:ResultData>
            </ns1:Result>
        </ns1:LST_SBRResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

 

java:

        SAXReader saxReader = new SAXReader();  
        Document document = saxReader.read(test.class.getResourceAsStream("po.xml"));  
        DefaultXPath xpath = new DefaultXPath("//ns1:Item");
        xpath.setNamespaceURIs(Collections.singletonMap("ns1","http://www.xxx.com/a/"));  
        List list = xpath.selectNodes(document);  
        Iterator iterator = list.iterator();  
        int i = 1;
        while (iterator.hasNext()) {  
            Element node = (Element) iterator.next();
            System.out.println(i++ + node.getName());  
        } 

 我想取出<ns1:Item>中所有元素

可是出来的只有Item  
请教如何解决?


问题补充:引入的包:
import java.util.Collections; 
import java.util.Iterator; 
import java.util.List; 
 
import org.dom4j.Document; 
import org.dom4j.Element; 
import org.dom4j.io.SAXReader; 
import org.dom4j.xpath.DefaultXPath; 
2012年7月12日 09:32

1个答案 按时间排序 按投票排序

0 0

用document.createXPath试试

2012年7月12日 11:25

相关推荐

    利用DOM4J解析SOAP的简单示例

    了解DOM4J库的其他功能,如XPath查询、命名空间处理等,可以帮助更高效地处理复杂SOAP消息。 总之,DOM4J是处理XML文档的强大工具,包括解析和操作SOAP消息。通过熟悉其API和XML结构,开发者可以轻松地从SOAP消息中...

    dom4j-1.6.1-解析xml架包.zip

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、查询和操作变得简单。在本文中,我们将深入探讨DOM4J 1.6.1版本的核心特性、使用方法以及如何在实际项目中应用这个...

    dom4j-2.0.2.rar 解析jar下载

    2. **命名空间处理** - DOM4J可以处理XML文档中的命名空间,这对于处理复杂的XML标准如SOAP和XML Schema至关重要。 3. **事件处理** - 可以注册监听器来响应XML解析过程中的特定事件,如元素开始、结束等。 4. **DTD...

    dom4j-2.1.1.jar

    3. **Namespace**:处理XML命名空间。 4. **Document**:整个XML文档的根对象,包含了文档的元信息和元素树。 5. **XPath**:用于执行XPath查询,找到XML文档中的特定节点。 6. **Reader和Writer**:负责XML文档的...

    dom4j-1.6.1-docs

    7. **命名空间(Namespaces)支持**:DOM4J提供了对XML命名空间的完整支持,这对于处理包含命名空间的XML文档非常重要。 8. **文档对象模型(DOM)接口**:DOM4J的API设计使得可以很容易地与标准DOM API进行互操作...

    dom4j帮助文档

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高效的API,使得XML的读取、创建、修改和分析变得简单易行。在Java世界中,XML作为一种数据交换格式,广泛应用于配置文件、数据传输和文档存储等领域...

    dom4j教程

    5. **命名空间(Namespace)**:DOM4J支持处理XML命名空间,这对于处理如SOAP、XHTML等包含命名空间的XML文档至关重要。 6. **事件处理(Event)**:DOM4J也提供了基于事件的处理模型,可以监听XML解析过程中的事件...

    dom4j所需要的包和依赖包

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活、高性能的API,使得开发者可以方便地读取、写入、修改以及操作XML文件。DOM4J的知识点涵盖了许多方面,包括基本概念、核心组件、使用场景以及与其他XML...

    dom4j(2.1.1+ 2.0.2+ 1.6.1).zip

    - **Web服务开发**:在构建和解析SOAP消息时,DOM4J是常用工具。 - **配置文件处理**:例如处理Spring框架中的XML配置文件。 - **数据交换**:XML作为一种通用的数据交换格式,DOM4J可以简化这一过程。 - **XML文档...

    dom4j jar文件

    DOM4J支持SAX和DOM解析器,并提供了XPath支持,使得在XML文档中查找元素变得更加方便。此外,DOM4J还提供了事件驱动的解析方式,适用于大文件的处理,避免一次性加载整个XML到内存。 2. **XML解析** - **SAX解析**...

    dom4j相关jar包

    - Web服务:在SOAP等基于XML的Web服务中,DOM4J用于解析和生成响应消息。 总结,DOM4J是一个强大且易用的XML处理库,通过提供的API可以轻松实现XML的解析、创建、修改和查询。在Java开发中,尤其是处理XML相关任务...

    dom4j jar包

    SAX解析器适用于大文件,按事件驱动逐个处理XML节点,而DOM解析器则一次性加载整个文档到内存,适用于小文件或内存充足的情况。 #### 2.2 创建XML文档 DOM4J提供了API来动态创建XML文档,包括添加元素、属性和文本...

    xml学习,多种解析xml文件的方法

    例如,使用Java的DOM解析器`javax.xml.parsers.DocumentBuilderFactory`可以创建`Document`对象,然后通过`getElementsByTagName`、`getAttribute`等方法进行查询。 2. SAX(Simple API for XML)解析:SAX是一种...

    Axis2 SOAP XML报文节点首字母小写转大写,节点命名空间前缀添加与剔除(JAVA)

    在处理SOAP XML报文时,我们可能遇到一些规范性问题,例如节点首字母大小写的转换,以及节点命名空间前缀的添加与剔除。本文将深入探讨这些问题,并提供相应的解决方案。 首先,关于SOAP XML报文中的节点首字母大小...

    dom4j-1.6.1.jar

    4. DOM4J还支持命名空间、事件处理、转换(如XML到HTML)、XSLT样式表处理等功能,极大地扩展了XML处理的能力。 三、DOM4J的特点 1. 面向对象:DOM4J将XML文档结构映射为一系列的Java对象,使得操作XML就像操作...

    dom4j-1.6.1.zip

    - **DOM解析**:DOM将整个XML文档加载到内存中,形成一个树形结构,可以方便地遍历和修改文档,但不适合处理大文件。 - **SAX解析**:SAX是一种事件驱动的解析方式,只读取XML文档的部分内容,不保存整个文档结构,...

    dom4j官方jar包+API

    6. **命名空间(Namespace)**:处理XML文档时,DOM4J提供了处理命名空间的能力,这对于处理包含多个前缀的复杂文档至关重要。 **DOM4J的主要功能** 1. **解析XML**:DOM4J提供多种解析器,如SAXReader和DOMReader,...

    dom4j的api文档

    - Web服务:在处理SOAP消息时,DOM4J可以用来解析和构建XML消息。 DOM4J的API文档详细覆盖了这些功能,每个类和方法都有清晰的说明,对于开发者来说,无论是初学者还是资深程序员,都是宝贵的参考资料。通过深入...

    dom4j-1.6.1本地文档

    3. **DOM解析**:提供了一个轻量级的DOM实现,可以快速构建和操作XML文档对象模型。 4. **XPath支持**:通过XPath表达式,可以方便地定位并操作XML文档中的节点。 5. **XML Schema支持**:能够验证XML文档是否符合...

    dom4j-1.6.1.rar

    4. **Namespace对象**:DOM4J支持命名空间(Namespace),这对于处理XML文档中的复杂结构至关重要。 5. **XPath支持**:DOM4J提供了对XPath表达式的支持,允许通过简单的字符串查询XML文档中的特定元素或属性。 **...

Global site tag (gtag.js) - Google Analytics