`

使用jdom的XPath来快速定位xml节点

    博客分类:
  • XML
阅读更多
在用jdom来解析xml文档的时候,我们常常需要快速定位到某一个节点进行读取或修改操作。定位节点,这正是xpath表达式发挥作用的地方。从beta 9(www.jdom.org有下载)开始,jdom开始支持解析xpath路径表达式了,这样我们在用jdom来解析xml文档的时候,方便多了。请看例子

1.示例用xml文件,kk.xml

<?xml version = "1.0" encoding="GB2312" ?>
<联系人列表>
    <联系人>
        <姓名>张三</姓名>
        <ID>001</ID>
        <公司>A公司</公司>
        <EMAIL>zhang@aaa.com</EMAIL>
        <电话 类型="公司">(010)62345678</电话>
        <电话 类型="家庭">(010)88888888</电话>
        <地址>
            <街道>五街1234号</街道>
            <城市>北京市</城市>
            <省份>北京</省份>
        </地址>
    </联系人>

    <联系人>
        <姓名>李四</姓名>
        <ID>002</ID>
        <公司>B公司</公司>
        <EMAIL>li@bbb.org</EMAIL>
        <电话 类型="公司">(021)87654321</电话>
        <地址>
            <街道>南京路9876号</街道>
            <城市>上海</城市>
            <省份>上海</省份>
        </地址>
    </联系人>
</联系人列表>

2.为了找到张三的家庭的电话号码,使用下列代码段

package test;

import java.util.List;
import java.net.URL;
import org.jdom.*;
import org.jdom.xpath.*;
import org.jdom.input.*;
import java.io.*;
import java.util.*;


public class Test{
  public static void main(String[] args) throws Exception{

    SAXBuilder builder = new SAXBuilder();
    Document doc = builder.build("kk.xml");
    Element root = doc.getRootElement();

    XPath xpath = XPath.newInstance("//电话[../姓名='张三'][@类型='家庭']");
     List list = xpath.selectNodes(root);

     Iterator iter = list.iterator();
     while (iter.hasNext()) {
       Element item = (Element) iter.next();
       System.err.println(item.getText());
     }


  }

输出结果正是我们想要的:(010)88888888.怎么样,很方便吧:)。

8过呢,我这个表达式效率不一定就是最高的,你对xpath掌握得越好,查询效率越好。
分享到:
评论

相关推荐

    xpath读取XML节点

    在Java编程中,JDOM库是一个流行的解析和操作XML的工具,它提供了对XPath的支持,使得我们可以方便地通过XPath表达式来读取XML文档的节点。 首先,理解XPath的基本语法是非常重要的。XPath表达式由路径表达式组成,...

    JDOM中XPath.selectNodes()和XPath.selectSingleNode()用法

    XPath在JDOM中的作用是通过表达式来查找XML文档中的特定节点。XPath表达式是一个字符串,可以用来选择XML文档中的元素、属性、文本节点等。JDOM提供了`XPath`类,该类允许我们编译和执行XPath表达式。 1. `XPath....

    基于jdom的xpath解析数据

    本主题将深入探讨如何使用Java中的JDOM库来实现XPath解析,从而高效地提取XML数据。 JDOM是一个纯Java的XML处理库,它提供了一种简单的方式来构建、修改和读取XML文档。与DOM(Document Object Model)相比,JDOM...

    jdom 读取XML 文件

    使用JDOM,我们可以通过API操作这些节点来实现对XML的解析和操作。 要读取XML文件,首先需要在项目中引入JDOM库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org.jdom ...

    JDOM操作xml文件的xmlBean

    - 支持XPath查询,便于快速定位文档中的特定节点。 - 支持XSLT转换,可以将XML文档转换为其他格式的文档。 #### 六、总结 JDOM是一种简单而有效的XML处理工具,适用于需要快速处理XML文档的应用场景。通过上述分析...

    XML解析,简单易学(Jdom+XPath): 精简Demo(含jar包).rar

    总结来说,"XML解析,简单易学(Jdom+XPath): 精简Demo(含jar包).rar"这个压缩包提供了使用JDOM2和XPath处理XML的实例,适合初学者快速上手,同时也可作为进阶开发者参考的代码示例。通过这个示例,你可以学习到...

    java 使用JDOM解析xml文件.docx

    使用 JDOM 库解析 XML 文件是一种简单易用的方式,能够快速地解析和处理 XML 文件,并且提供了高效的解析性能。 JDOM 库的应用场景 JDOM 库广泛应用于各种 Java 项目中,例如: * XML 配置文件解析 * 数据交换和 ...

    dom+xpath的jar

    在描述中的代码片段`doc.selectNodes("/ACCESOS/item/SOCIO")`,`doc`代表了整个XML文档的根节点,`selectNodes`是DOM4J库提供的方法,它使用XPath表达式来选取文档中匹配的节点。这里的XPath路径`/ACCESOS/item/...

    xpathDemo.zip

    而XPath则作为查询工具,用于在JDOM构建的XML文档结构中快速定位到特定的节点。 首先,我们需要了解JDOM的基本用法。JDOM的使用通常分为三个步骤:构建模型、查询模型和修改模型。构建模型时,我们通过`SAXBuilder`...

    jdom-test-1.1.zip_Java Test_java 操作xml_jdom_jdom xml_xml java jd

    本示例“jdom-test-1.1.zip”提供了使用JDOM库操作XML的详细教程。 JDOM,全称为Java Document Object Model,是一个专为Java设计的API,用于读写XML文档。它提供了一个直观的、基于树的API,使得开发者能够轻松地...

    用jdom简化xml 编程 关于xml

    此外,JDOM还支持XML Schema和DTD验证,以及XPath表达式来定位XML文档中的特定节点。 然而,JDOM并非没有缺点。它的内存消耗相对较高,因为它会将整个XML文档加载到内存中,这在处理大型XML文件时可能会成为一个...

    使用JDOM来生成XML文档

    本文将深入探讨如何使用JDOM库来生成XML文档,这是一种纯Java的API,设计用于简化XML处理。 JDOM是一个开源项目,它的全称是Java Document Object Model,它为Java程序员提供了一个方便的方式来创建和操作XML文档。...

    java jdom解析xml

    - **优化策略**:如果确实需要处理大型XML文件,可以使用JDOM的SAXBuilder,它允许以SAX方式读取XML,但仍然使用JDOM API进行操作。 6. **示例代码** ```java import org.jdom2.Document; import org.jdom2....

    JDOM解析XML

    在实际应用中,JDOM可以结合XPath(通过jaxen.jar实现)来快速定位XML文档中的特定节点,提高开发效率。例如,通过`XPathFactory`创建`XPath`对象,然后调用`compile()`方法编译XPath表达式,最后使用`evaluate()`...

    JDOM读取XML,并且创建XML

    例如,你可以使用`XPath`表达式来定位特定的元素,或者通过`Element`类的方法来添加、删除或修改子元素和属性。 总的来说,JDOM是Java开发中处理XML的强大工具,它的简洁API和面向对象的设计使得XML操作变得直观且...

    jdom解析xml用到的jar包

    在实际开发中,JDOM通常与XPath(XML Path Language)结合使用,XPath允许你通过路径表达式来定位XML文档中的特定节点,这极大地增强了查找和操作XML数据的能力。例如,使用JDOM的XPath支持(需要添加额外的XPath库...

    jdom.jar解析xml

    XPath是一种强大的查询语言,可以用来定位XML文档中的特定节点。JDOM提供了Jaxen库来支持XPath。例如,我们可以这样获取名为“elementName”的元素: ```java Element root = document.getRootElement(); Element...

    jdom-contrib-1.0.zjip

    总结起来,`jdom-contrib-1.0.jar`为JDOM增加了XPath的支持,使得在处理XML文档时,我们可以通过简洁的XPath表达式来快速定位和操作节点,提高了开发效率和代码的可读性。如果你在JDOM项目中需要XPath功能,这是一个...

    jdom_xml.rar_jdom_xml

    同时,DOM4J的XPath支持使得通过表达式查找和修改XML节点变得非常方便。 **JDOM与DOM4J的比较** 1. **性能** 在内存消耗方面,DOM4J由于提供了更多功能,可能会比JDOM消耗更多资源。而SAXBuilder在JDOM中通常用于...

    Dom JDom 解析xml 文件

    在JDOM中,还可以考虑使用XPath表达式来快速定位XML元素,提高代码的可读性和效率。 总之,DOM和JDOM是Java中解析XML的重要工具,它们提供了灵活的方式来读取、修改和写入XML文件。根据项目需求和性能考虑,选择...

Global site tag (gtag.js) - Google Analytics