在用jdom来解析xml文档的时候,我们常常需要快速定位到某一个节点进行读取或修改操作。定位节点,这正是xpath表达式发挥作用的地方。jdom-1.0(www.jdom.org有下载)支持解析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.为了找到张三的家庭的电话号码,使用下列代码段
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());
}
}
程序编译时,设置编译路径的jdom.bat文件内容如下:
set CLASSPATH=
c:\java\jar\jdom.jar;c:\java\jar\jaxen-core.jar;c:\java\jar\saxpath.jar;c:\java\jar\jaxen-jdom.jar;%CLASSPATH%
运行结果:
C:\java>java Test
(010)88888888
C:\java>
输出结果正是我们想要的:(010)88888888.怎么样,很方便吧:)。
不过呢,我这个表达式效率不一定就是最高的,你对xpath掌握得越好,查询效率越好。
分享到:
相关推荐
在Java编程中,JDOM库是一个流行的解析和操作XML的工具,它提供了对XPath的支持,使得我们可以方便地通过XPath表达式来读取XML文档的节点。 首先,理解XPath的基本语法是非常重要的。XPath表达式由路径表达式组成,...
XPath在JDOM中的作用是通过表达式来查找XML文档中的特定节点。XPath表达式是一个字符串,可以用来选择XML文档中的元素、属性、文本节点等。JDOM提供了`XPath`类,该类允许我们编译和执行XPath表达式。 1. `XPath....
本主题将深入探讨如何使用Java中的JDOM库来实现XPath解析,从而高效地提取XML数据。 JDOM是一个纯Java的XML处理库,它提供了一种简单的方式来构建、修改和读取XML文档。与DOM(Document Object Model)相比,JDOM...
使用JDOM,我们可以通过API操作这些节点来实现对XML的解析和操作。 要读取XML文件,首先需要在项目中引入JDOM库。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.jdom ...
- 支持XPath查询,便于快速定位文档中的特定节点。 - 支持XSLT转换,可以将XML文档转换为其他格式的文档。 #### 六、总结 JDOM是一种简单而有效的XML处理工具,适用于需要快速处理XML文档的应用场景。通过上述分析...
总结来说,"XML解析,简单易学(Jdom+XPath): 精简Demo(含jar包).rar"这个压缩包提供了使用JDOM2和XPath处理XML的实例,适合初学者快速上手,同时也可作为进阶开发者参考的代码示例。通过这个示例,你可以学习到...
使用 JDOM 库解析 XML 文件是一种简单易用的方式,能够快速地解析和处理 XML 文件,并且提供了高效的解析性能。 JDOM 库的应用场景 JDOM 库广泛应用于各种 Java 项目中,例如: * XML 配置文件解析 * 数据交换和 ...
在描述中的代码片段`doc.selectNodes("/ACCESOS/item/SOCIO")`,`doc`代表了整个XML文档的根节点,`selectNodes`是DOM4J库提供的方法,它使用XPath表达式来选取文档中匹配的节点。这里的XPath路径`/ACCESOS/item/...
而XPath则作为查询工具,用于在JDOM构建的XML文档结构中快速定位到特定的节点。 首先,我们需要了解JDOM的基本用法。JDOM的使用通常分为三个步骤:构建模型、查询模型和修改模型。构建模型时,我们通过`SAXBuilder`...
本示例“jdom-test-1.1.zip”提供了使用JDOM库操作XML的详细教程。 JDOM,全称为Java Document Object Model,是一个专为Java设计的API,用于读写XML文档。它提供了一个直观的、基于树的API,使得开发者能够轻松地...
此外,JDOM还支持XML Schema和DTD验证,以及XPath表达式来定位XML文档中的特定节点。 然而,JDOM并非没有缺点。它的内存消耗相对较高,因为它会将整个XML文档加载到内存中,这在处理大型XML文件时可能会成为一个...
本文将深入探讨如何使用JDOM库来生成XML文档,这是一种纯Java的API,设计用于简化XML处理。 JDOM是一个开源项目,它的全称是Java Document Object Model,它为Java程序员提供了一个方便的方式来创建和操作XML文档。...
- **优化策略**:如果确实需要处理大型XML文件,可以使用JDOM的SAXBuilder,它允许以SAX方式读取XML,但仍然使用JDOM API进行操作。 6. **示例代码** ```java import org.jdom2.Document; import org.jdom2....
在实际应用中,JDOM可以结合XPath(通过jaxen.jar实现)来快速定位XML文档中的特定节点,提高开发效率。例如,通过`XPathFactory`创建`XPath`对象,然后调用`compile()`方法编译XPath表达式,最后使用`evaluate()`...
例如,你可以使用`XPath`表达式来定位特定的元素,或者通过`Element`类的方法来添加、删除或修改子元素和属性。 总的来说,JDOM是Java开发中处理XML的强大工具,它的简洁API和面向对象的设计使得XML操作变得直观且...
在实际开发中,JDOM通常与XPath(XML Path Language)结合使用,XPath允许你通过路径表达式来定位XML文档中的特定节点,这极大地增强了查找和操作XML数据的能力。例如,使用JDOM的XPath支持(需要添加额外的XPath库...
XPath是一种强大的查询语言,可以用来定位XML文档中的特定节点。JDOM提供了Jaxen库来支持XPath。例如,我们可以这样获取名为“elementName”的元素: ```java Element root = document.getRootElement(); Element...
总结起来,`jdom-contrib-1.0.jar`为JDOM增加了XPath的支持,使得在处理XML文档时,我们可以通过简洁的XPath表达式来快速定位和操作节点,提高了开发效率和代码的可读性。如果你在JDOM项目中需要XPath功能,这是一个...
同时,DOM4J的XPath支持使得通过表达式查找和修改XML节点变得非常方便。 **JDOM与DOM4J的比较** 1. **性能** 在内存消耗方面,DOM4J由于提供了更多功能,可能会比JDOM消耗更多资源。而SAXBuilder在JDOM中通常用于...
在JDOM中,还可以考虑使用XPath表达式来快速定位XML元素,提高代码的可读性和效率。 总之,DOM和JDOM是Java中解析XML的重要工具,它们提供了灵活的方式来读取、修改和写入XML文件。根据项目需求和性能考虑,选择...