`

在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-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包

    dom4j和xpath的jar包,解析xml的最佳拍档.

    xml+dom4j+xpath资料

    xml+dom4j+xpath资料

    使用dom4j解析XML

    本文介绍如何使用包含在dom4j中的解析器创建并修改XML文档。dom4j API包含一个解析XML文档的工具。本文中将使用这个解析器创建一个示例XML文档,然后使用同一个解析器修改。与W3C DOM API相比,使用dom4j所包含的...

    dom4j---xml解析jar包

    dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。

    用dom4j解析xml时,用xpath的辅助包

    用dom4j解析xml时,经常需要用到xpath,由于dom4j-1.6.1.jar不包括jaxen-1.1-beta-6.jar,导致使用xpath报错。 其中jaxen-full.jar是为了解决ava.lang.NoClassDefFoundError: org/jaxen/JaxenException错误。 下载的...

    dom4j中XPath用法

    NULL 博文链接:https://wangweiwei358.iteye.com/blog/764548

    dom4j 和xpath

    dom4j 和dom4j 是一款比较好用的Xml解析工具jar,其中部分功能需要xpath的支持

    使用Maven管理项目,实现DOM4j操作XML文件

    该示例实现MAVEN来进行创建的,实现了dom4j操作XML文件,包括创建XML、动态创建XML节点、更新XML节点、删除XML节点。

    dom4j及xpath jar包

    Dom4j 解析XML 所使用的jar包,及添加XPath 支持所需要的 jar 包。具体使用可看我博客

    dom4j和xpath必备jar包

    dom4j和xpath必备jar包对xml文档进行解析的必须jar包!

    Dom4j__XPath

    讲解Dom4j如何利用XPath解析XML

    dom4j用到的jar包 xpath用到的jar包

    使用dom4j解析xml时用到的jar包dom4j-1.6.1.zip xpath用到的jar包jaxen-1.1-beta-6.jar

    JsoupXpath-0.3.2.jar 完整版

    JsoupXpath 是一款纯Java开发的使用xpath解析提取html数据的解析器,针对html解析完整实现了W3C XPATH 1.0标准语法,xpath的Lexer和Parser基于Antlr4构建,html的DOM树生成采用Jsoup,故命名为JsoupXpath. 为了在...

    dom4j基础入门文档(SAX,DOM,XPATH)

    dom4j基础入门文档,与 W3C DOM API 相比,使用 dom4j 所包含的解析器的好处是 dom4j 拥有本地的 XPath 支持。

    使用DOM4J和xpath解析XML(一)

    NULL 博文链接:https://bbsanwei.iteye.com/blog/266394

    dom4j api 参考手册

    为了方便网友编程,将资源...org.dom4j.xpath Provides the core tools needed to use the XPath library org.dom4j.xpp Provides implementation classes to cleanly integrate dom4j with the XML Pull Parser XPP

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

    XML节点访问的路径表达式【相对路径】和【绝对路径】的匹配原则

    Dom4j_使用简介

    Dom4j_使用简介DOM4J是dom4j.org出品的一个开源XML解析包,它的网站中这样定义: Dom4j is an easy to use, open source library for working with XML, XPath and XSLT on the Java platform using the Java ...

    dom4j-1.6包

    使用dom4j解析XML时,要快速获取某个节点的数据,使用XPath是个不错的方法,dom4j的快速手册里也建议使用这种方式 执行时却抛出以下异常: Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen...

Global site tag (gtag.js) - Google Analytics