`
yinlongfei
  • 浏览: 155417 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Dom4j 解析xpath路径带命名空间的xml文件

XML 
阅读更多

xml文件内容如下:

<?xml version="1.0" standalone="yes"?>
<NewData>
  <xs:schema id="NewData" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="NewData">
      <xs:complexType>
          <xs:element name="Table">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="A0101" type="xs:string" />
                <xs:element name="A0102" type="xs:string" />
                <xs:element name="A0103" type="xs:string" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <Table>
    <A0101>1</A0101>
    <A0102>2</A0102>
    <A0103>3</A0103>
  </Table>
</NewDataSet>

 

java代码如下:

/**
  * configFileName : 文件的存放路径
  * @param configFileName
  */

 public void config(String configFileName){
     this.configFileName = configFileName;
     SAXReader reader = new SAXReader();
     Document document;
     try {

        //下面三行是最关键,将命名空间添加到xpath中,如果xpath路径不带命名空间,只需要取消如下三行代码,其他代码同样使用。
         Map<String, String> nameSpaceMap = new HashMap<String, String>();
         nameSpaceMap.put("xs", "http://www.w3.org/2001/XMLSchema");  
         reader.getDocumentFactory().setXPathNamespaceURIs(nameSpaceMap); 


         document = reader.read(configFileName);
         configDBConfig(document);
     } catch (DocumentException e1) {
         // TODO Auto-generated catch block
         e1.printStackTrace();
     } catch (Exception e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
     }
 }
 
 
 private void configDBConfig(Document document) throws Exception  {
  
      //获得xs:sequence节点下所有子节点信息
      Element element1 = (Element)document.selectSingleNode ("NewData/xs:schema/xs:element/xs:complexType/xs:element/xs:complexType/xs:sequence");
      if(null == element1){return;}
          List elements1 = element1.elements();
          for (Iterator it = elements1.iterator(); it.hasNext();) {
          Element e = (Element) it.next();
          System.out.println("name = "+e.attribute("name").getText() + "   type = "+e.attribute("type").getText());
      }
  
  }

2
1
分享到:
评论

相关推荐

    dom4j和xpath的jar包

    此外,DOM4J还支持命名空间、XPath表达式以及转换为其他XML格式(如SAX或DOM)的能力。 XPath是W3C制定的一种查询语言,用于在XML文档中查找信息。它可以定位到XML文档中的特定节点,如元素、属性、文本等。XPath...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    Demo4j和XPath解析XML的文件路径表达式(ZVON.org - X 路径教程)

    本教程将重点讨论如何使用Java库Demo4j与XPath一起工作,以解析XML文件中的路径表达式。 首先,我们需要理解XPath的基本概念。XPath使用路径表达式来选取XML文档中的节点,这些路径表达式类似于文件系统中的路径。...

    DOM4J 解析XML

    5. **XPath(路径表达式)**:DOM4J支持XPath,这是一种强大的查询语言,可以用来定位XML文档中的特定节点。 6. **DocumentBuilderFactory和DocumentBuilder**:这两个类用于创建和配置DOM4J解析器。 7. **Reader...

    dom4j中xpath的使用

    DOM4J提供了一个名为`XPath`的类,用于解析和执行XPath表达式。以下是一些基本使用步骤: 1. **创建XPath对象**:首先,你需要通过`DocumentHelper.createXPath(expression)`方法创建一个`XPath`对象,其中`...

    dom4j和xpath帮助文档

    5. **命名空间支持**:处理带有命名空间的XML文档时,DOM4J可以有效地管理命名空间。 6. **事件驱动**:DOM4J支持SAX的事件驱动模型,适合处理大文件,避免一次性加载整个文档到内存中。 7. **转换工具**:可以将DOM...

    dom4j解析xml实例

    **DOM4J解析XML实例详解** 在Java编程中,处理XML文档是一项常见的任务。DOM4J是一个非常流行的、强大的Java XML API,它提供了灵活且高效的方式来解析、创建、修改XML文档。本文将深入探讨如何使用DOM4J进行XML...

    dom4j解析xml文件必备jar包

    为了更好地利用DOM4J,开发者还需要掌握一些基本的XML知识,如XML元素、属性、命名空间以及XPath语法。 总结来说,这个压缩包提供了DOM4J解析XML文件所需的关键组件,包括DOM4J本身、XPath处理器Jaxen以及XML解析器...

    利用DOM4J解析SOAP的简单示例

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

    dom4J解析XML 和jar包

    1. **解析XML文档**:DOM4J提供了多种解析器,如SAX和DOM解析器,可以高效地将XML文档转换为树形结构。通过这种方式,开发者可以方便地遍历和访问XML元素。 2. **构建XML文档**:DOM4J允许动态创建XML文档,可以...

    无标题dom4j 和XPath jar包

    【标题】: "无标题dom4j 和XPath jar包" 描述了本次文件内容的核心,主要涉及两个Java库——dom4j与XPath相关的jar包。这两个库在Java开发中广泛用于XML处理,尤其是在数据解析、文档操作以及信息提取等方面。 **...

    Java用DOM4J读取XML

    DOM4J不仅兼容DOM和SAX,还提供了额外的功能,如自动命名空间处理、文档验证等。 DOM4J的一些特点包括: - **轻量级**:DOM4J相比标准的DOM实现更加轻量,消耗更少的内存。 - **易用性**:DOM4J提供了一套直观且...

    dom4j解析XML的两个JAR包

    - 这个库的主要特性包括:创建XML文档,修改XML结构,遍历XML节点,执行XPath查询,以及处理命名空间。 - DOM4J通过提供丰富的接口和类,使得开发者可以轻松地处理XML文档的各种操作,如添加、删除或修改元素和...

    java解析XML dom4j dom4j-1.6.1.jar

    Java解析XML时,dom4j是一个非常流行的库,它提供了灵活且强大的API来处理XML文档。dom4j-1.6.1.jar是这个库的一个版本,发布于2005年,它支持XML的读取、写入、操作以及查询功能。在本文中,我们将深入探讨dom4j的...

    XSD使用dom4j校验XML

    1. 加载XSD文件:使用DOM4J的DocumentHelper类的parse方法,传入XSD文件的路径,得到一个SchemaFactory对象。 ```java SchemaFactory schemaFactory = DocumentHelper.createSchema(new File("path_to_xsd_file.xsd...

    dom4j_1.6.1.jar dom4j_2.1.0.jar

    5. **XPath查询**:DOM4J支持XPath表达式,允许开发者通过路径快速定位XML文档中的特定节点,如`XPath.compile("//elementName")`。 6. **文档构建**:DOM4J提供了方便的API来构建XML文档,可以动态地创建XML结构,...

    dom4j解析xml所需的jar.zip

    1. **解压**:首先,解压“dom4j解析xml所需的jar.zip”文件,这将得到一个JAR文件,通常命名为`dom4j-x.x.x.jar`。 2. **导入库**:将这个JAR文件添加到你的Java项目类路径中。如果你使用的是IDE(如Eclipse或...

    基于Xpath的xml文件查询和更新

    更新XML文件通常涉及DOM(Document Object Model)解析,将XML文件加载到内存中形成一个可操作的树形结构。例如,使用Python的`lxml`库: ```python from lxml import etree # 加载XML tree = etree.parse('...

    dom4j-1.6.1.jar

    6. **Namespace支持**:DOM4J支持XML命名空间,这对于处理包含多个命名空间的XML文件至关重要。 7. **Document Type支持**:可以处理XML文档类型定义(DTD)和XML Schema。 8. **XPath表达式**:DOM4J提供了XPathAPI...

Global site tag (gtag.js) - Google Analytics