`

在Dom4j中使用xpath--查看xml数据代码

    博客分类:
  • JAVA
XML 
阅读更多

最近项目需要操作xml文件,虽然以前也研究过dom4j,但一者是因为时间太长了,因没写文档,有些忘记了,再者想再整理下,优化下dom4j的使用.所以就查了些资料,然后进行了些总结.(ps:因文档网上已经很多了,所以在这里主要是我现在正使用的代码)

主要实现功能:

从示例xml中根据pid查找对应的data数据

 

<root name="数据" title="客户数据">


<item>
<date>2009-02-13</date>
<pid>1001</pid>
<data>9</data>
</item>


<item>
<date>2009-02-13</date>
<pid>1017</pid>
<data>594</data>
</item>


</root>

 

/**
 * @author sech
 *
 * @version 1.0
 */

public class XmlDom4J {
    private static final Log logger = LogFactory.getLog(XmlDom4J.class);
    private Document document;
    private List nodeList;
    private Node root;
  
    public XmlDom4J(String inputXml) {
        try {
            SAXReader saxReader = new SAXReader();
            document = saxReader.read(inputXml);
            root = document.selectSingleNode("//root"); //先将数据放入root,这样若多次取对应pid的数据,

                                                                                  //不用每次都先访问xml了
        } catch (DocumentException e) {
            logger.error(e.getMessage());
        } catch (Exception e) {
            logger.error(e.getMessage());
        }
    }

    /**
     * 取得对应pid的data
     */
    private int getDataOfPid(String pid) {
        nodeList = root.selectNodes("//item[pid='" + pid + "']/data");//取pid的data数据
        if (nodeList != null && nodeList.size() > 0) {
           Element e = (Element) nodeList.get(0);
           return Integer.parseInt(e.getTextTrim());
        }
        return 0;       
    }

}
 

 

若xml数据改为:

 

<?xml version="1.0" encoding="gbk"?>
<root name="数据" title="客户数据">
<item>
<date>2009-02-13</date>
<data pid="1001">9</data>
</item>
<item>
<date>2009-02-13</date>
<data pid="1017">594</data>
</item>
</root>
 

 

 

则获取代码为:

/**
     * 取得账号的data
     */
    private int getDataOfPid2(String pid) {
        nodeList = root.selectNodes("//item/data[@pid='" + pid + "']");//若item还有属性,

                                                               //则可以为"//item[@新属性='新属性值']/data[@pid='pid值']"
        if (nodeList != null && nodeList.size() > 0) {
            Element e = (Element) nodeList.get(0);
            return Integer.parseInt(e.getTextTrim());
        }
        return 0;      
    }
 
分享到:
评论

相关推荐

    dom4j-1.6.1 与 dom4j-2.0.0-ALPHA

    总的来说,DOM4J是XML处理领域中的一个重要工具,无论是在简单的数据提取还是复杂的文档操作中,都能提供强大而灵活的支持。了解并掌握DOM4J的使用,对于任何涉及XML的Java开发者来说都是非常有价值的技能。

    dom4j和xpath的jar包

    DOM4J和XPath是两种在Java编程环境中广泛用于XML处理的重要工具。XML(eXtensible Markup Language)是一种用于标记数据的语言,常用于结构化数据的存储和交换。DOM4J是一个灵活且功能丰富的Java库,它提供了强大的...

    dom4j中XPath用法

    这篇博文将深入探讨如何在DOM4J中使用XPath进行数据查找和操作。 首先,我们需要理解DOM4J中XPath的基本概念。XPath表达式是由路径、轴、节点测试和节点组合组成的字符串,用于定位XML文档中的特定节点。例如,`/...

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

    DOM4J库集成了XPath支持,使得在DOM4J中使用XPath查询XML数据变得非常方便。 DOM4J的主要特性包括: 1. **XML解析**:DOM4J提供了多种解析方式,包括DOM、SAX和StAX,以适应不同的性能和内存需求。 2. **文档模型**...

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...

    DOM4J_xpath

    12. **Node**: 为DOM4J中所有的XML节点定义多态行为。 13. **NodeFilter**: 定义在DOM4J节点中产生的一个过滤器或谓词的行为。 14. **ProcessingInstruction**: 定义XML处理指令。 15. **Text**: 定义XML文本节点。 ...

    dom4j---xml解析jar包

    2. **集合框架集成**:DOM4J中的XML元素可以像Java集合一样进行迭代、查找、添加和删除,大大简化了编程。 3. **XPath支持**:DOM4J提供了对XPath表达式的强大支持,可以方便地定位XML文档中的任何节点。 4. **轻量...

    dom4j-2.0.0-ALPHA-2.jar

    1. **Element(元素)**:DOM4J中的元素代表XML文档中的一个节点,它可以包含其他元素、属性、文本等。 2. **Attribute(属性)**:元素可以有零个或多个属性,用于存储附加信息。 3. **Text(文本)**:表示XML...

    dom4j中xpath的使用

    **DOM4J中XPath的使用** XPath是一种在XML文档中查找信息的语言,它被设计用来在XML文档中导航,寻找节点、属性或者信息。DOM4J是Java中一个非常流行的XML处理库,它提供了对XPath的强大支持。这篇文档将深入探讨...

    java解析XML dom4j dom4j-1.6.1.jar

    在本文中,我们将深入探讨dom4j的核心概念和使用方法,以及如何在Java项目中集成和应用它。 1. **DOM4J简介** DOM4J是一个基于Java的XML API,它扩展了标准的DOM模型,增加了如路径导航、事件处理和XPath支持等...

    dom4j 和xpath

    DOM4J和XPath是XML处理领域中的两个重要概念,它们在Java编程中有着广泛的应用。DOM4J是一款灵活且功能强大的...在Java项目中,使用DOM4J配合XPath可以极大地提高开发效率和代码的可读性,尤其在处理复杂XML文档时。

    xml+dom4j+xpath资料

    DOM4J与XPath的结合使用,大大简化了XML处理的复杂度,提高了开发效率。在实际项目中,它们是处理XML数据不可或缺的工具。通过深入学习和实践,开发者可以更好地掌握XML的解析、操作和查询技术,提升项目中的数据...

    dom4j-2.0.0-ALPHA-2.zip

    - **XML数据的映射**:DOM4J可以与Java对象进行绑定,将XML数据映射为Java对象,反之亦然,这在数据序列化和反序列化时非常实用。 - **XML文档的查询**:通过XPath,你可以快速找到XML文档中的任何元素,进行进一步...

    使用dom4j和jaxen解析xml

    例如,以下代码展示了如何使用dom4j和jaxen解析XML: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.jaxen.JaxenException; import org.jaxen.XPath...

    dom4j-2.1.3.zip

    在实际开发中,DOM4J常用于读取XML配置文件、解析XML数据、生成XML报告等场景。例如,通过`Document`对象读取XML文件,然后使用`Element`和`XPath`来获取或修改数据。同时,DOM4J还提供了`Writer`接口,可以将XML...

    Dom4j结合XPath解析XML文件路径表达式

    在Dom4j中,我们可以使用`org.dom4j.XPath`类来创建XPath对象,并通过`selectNodes()`或`selectSingleNode()`方法来执行路径表达式,获取XML文档中的节点集合或单个节点。以下是一个简单的示例: ```java import ...

    dom4j及xpath jar包

    XPath可以在DOM4J构建的XML文档对象模型上执行查询,帮助开发者快速、准确地找到所需的数据。例如,通过XPath我们可以轻松地找到XML文档中的某个元素、获取特定属性的值或者筛选满足特定条件的节点。 要使用DOM4J和...

    dom4j_1.6.1.jar dom4j_2.1.0.jar

    描述中提到这两个版本包含了源码和文档,这意味着用户可以查看源代码以了解其内部工作原理,并且有官方文档帮助开发者理解和使用DOM4J库。 **DOM4J知识点** 1. **DOM4J概述**:DOM4J是一个开源项目,它提供了全面...

    dom4j-2.0.0-ALPHA-2

    dom4j是一个简单而灵活的开放源码库中使用XML,XPath和XSLT的工作使用的Java使用DOM,SAX和JAXP的充分融合了Java集合框架平台。 内含: dom4j-2.0.0-ALPHA-2.jar dom4j-2.0.0-ALPHA-2-javadoc.jar dom4j-2.0.0-ALPHA...

    dom4j和xpath必备jar包

    将这些jar包添加到项目的类路径中,开发者就可以在代码中直接调用DOM4J和XPath的功能,实现对XML文档的强大操作。 总之,DOM4J和XPath是XML处理领域的重要工具,它们为Java开发者提供了强大而灵活的XML处理能力,...

Global site tag (gtag.js) - Google Analytics