最近项目需要操作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是XML处理领域中的一个重要工具,无论是在简单的数据提取还是复杂的文档操作中,都能提供强大而灵活的支持。了解并掌握DOM4J的使用,对于任何涉及XML的Java开发者来说都是非常有价值的技能。
DOM4J和XPath是两种在Java编程环境中广泛用于XML处理的重要工具。XML(eXtensible Markup Language)是一种用于标记数据的语言,常用于结构化数据的存储和交换。DOM4J是一个灵活且功能丰富的Java库,它提供了强大的...
这篇博文将深入探讨如何在DOM4J中使用XPath进行数据查找和操作。 首先,我们需要理解DOM4J中XPath的基本概念。XPath表达式是由路径、轴、节点测试和节点组合组成的字符串,用于定位XML文档中的特定节点。例如,`/...
DOM4J库集成了XPath支持,使得在DOM4J中使用XPath查询XML数据变得非常方便。 DOM4J的主要特性包括: 1. **XML解析**:DOM4J提供了多种解析方式,包括DOM、SAX和StAX,以适应不同的性能和内存需求。 2. **文档模型**...
在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...
12. **Node**: 为DOM4J中所有的XML节点定义多态行为。 13. **NodeFilter**: 定义在DOM4J节点中产生的一个过滤器或谓词的行为。 14. **ProcessingInstruction**: 定义XML处理指令。 15. **Text**: 定义XML文本节点。 ...
2. **集合框架集成**:DOM4J中的XML元素可以像Java集合一样进行迭代、查找、添加和删除,大大简化了编程。 3. **XPath支持**:DOM4J提供了对XPath表达式的强大支持,可以方便地定位XML文档中的任何节点。 4. **轻量...
1. **Element(元素)**:DOM4J中的元素代表XML文档中的一个节点,它可以包含其他元素、属性、文本等。 2. **Attribute(属性)**:元素可以有零个或多个属性,用于存储附加信息。 3. **Text(文本)**:表示XML...
**DOM4J中XPath的使用** XPath是一种在XML文档中查找信息的语言,它被设计用来在XML文档中导航,寻找节点、属性或者信息。DOM4J是Java中一个非常流行的XML处理库,它提供了对XPath的强大支持。这篇文档将深入探讨...
在本文中,我们将深入探讨dom4j的核心概念和使用方法,以及如何在Java项目中集成和应用它。 1. **DOM4J简介** DOM4J是一个基于Java的XML API,它扩展了标准的DOM模型,增加了如路径导航、事件处理和XPath支持等...
DOM4J和XPath是XML处理领域中的两个重要概念,它们在Java编程中有着广泛的应用。DOM4J是一款灵活且功能强大的...在Java项目中,使用DOM4J配合XPath可以极大地提高开发效率和代码的可读性,尤其在处理复杂XML文档时。
DOM4J与XPath的结合使用,大大简化了XML处理的复杂度,提高了开发效率。在实际项目中,它们是处理XML数据不可或缺的工具。通过深入学习和实践,开发者可以更好地掌握XML的解析、操作和查询技术,提升项目中的数据...
- **XML数据的映射**:DOM4J可以与Java对象进行绑定,将XML数据映射为Java对象,反之亦然,这在数据序列化和反序列化时非常实用。 - **XML文档的查询**:通过XPath,你可以快速找到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常用于读取XML配置文件、解析XML数据、生成XML报告等场景。例如,通过`Document`对象读取XML文件,然后使用`Element`和`XPath`来获取或修改数据。同时,DOM4J还提供了`Writer`接口,可以将XML...
在Dom4j中,我们可以使用`org.dom4j.XPath`类来创建XPath对象,并通过`selectNodes()`或`selectSingleNode()`方法来执行路径表达式,获取XML文档中的节点集合或单个节点。以下是一个简单的示例: ```java import ...
XPath可以在DOM4J构建的XML文档对象模型上执行查询,帮助开发者快速、准确地找到所需的数据。例如,通过XPath我们可以轻松地找到XML文档中的某个元素、获取特定属性的值或者筛选满足特定条件的节点。 要使用DOM4J和...
描述中提到这两个版本包含了源码和文档,这意味着用户可以查看源代码以了解其内部工作原理,并且有官方文档帮助开发者理解和使用DOM4J库。 **DOM4J知识点** 1. **DOM4J概述**:DOM4J是一个开源项目,它提供了全面...
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...
将这些jar包添加到项目的类路径中,开发者就可以在代码中直接调用DOM4J和XPath的功能,实现对XML文档的强大操作。 总之,DOM4J和XPath是XML处理领域的重要工具,它们为Java开发者提供了强大而灵活的XML处理能力,...