使用dom4j和XPath
配置开发包
dom4j-1.6.1.jar
jaxen-1.1-beta-6.jar(XPath必备)
取某一节点
Element root = (Element) document.selectSingleNode("//root");
取某一节点的属性
Attribute attribute = (Attribute) document.selectSingleNode("//root/cell/@value");
使用经验
我们在做系统间交互时,通常通过自定义的xml文件进行数据交换。例如:系统A需要向系统B传输一个xml字串的条件如下:
<?xml version="1.0" encoding="gb2312"?>
<root systemid="Darenkou" userid="admin" default="DA" icon="0000">
<cell value=""/>
</root>
系
统A只需填充cell节点的value属性值,我的建议是将这段xml写成本地文件,每次传输时首先读取xml文件,再置cell节点的
value属性值,然后将xml对象转变成字串传给系统B。这样的优点是:一般systemid="Darenkou" userid="admin"
default="DA" icon="0000" 是传输参数,当有所变动时只需修改本地文件即可。
详细例程
test.xml
<?xml version="1.0" encoding="gb2312"?>;
<root id="TK12" name="管理员" value=""/>;
XmlTest.java
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class XmlTest {
public static String generateXml(HashMap map) {
String strXml = null;
if (map != null) {
SAXReader reader = new SAXReader();
Document document = null;
try {
document = reader.read(new File("D:/test.xml"));
} catch (DocumentException e) {
e.printStackTrace();
}
Element root = (Element) document.selectSingleNode("//root");
root.attribute("value").setValue("分布");
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
String key = (String) iter.next();
String value = (String) map.get(key);
Element element = root.addElement("cell").addAttribute("value",
key);
element.addElement("element").addAttribute("type", "数值")
.addAttribute("name", "人数").addText(value);
}
strXml = encodeXml(document, "gb2312");
}
return strXml;
}
private static String encodeXml(Document document, String aEncode) {
// 进行编码转换
StringWriter sw = new StringWriter();
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(aEncode);
try {
XMLWriter writer = new XMLWriter(format);
writer.setWriter(sw);
writer.write(document);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sw.toString();
}
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("上海", "200");
map.put("北京", "300");
map.put("天津", "300");
System.out.println(generateXml(map));
}
}
分享到:
相关推荐
将DOM4J和XPath结合使用,可以实现高效、准确的XML处理。DOM4J可以加载和解析XML文档,然后利用XPath表达式进行数据检索。这种方式避免了传统遍历DOM树的低效,尤其是在大型XML文档中,XPath的查询性能优势尤为明显...
要使用DOM4J和XPath,首先需要在项目中引入相应的jar包。提供的压缩包中包含的"dom4j"文件,很可能就是DOM4J库的jar包。通常,还需要一个支持XPath的jar包,如jaxen,它为DOM4J提供了XPath的支持。如果你的描述中...
DOM4J和XPath是XML处理领域中的两个重要概念,它们在Java编程中有着广泛的应用。DOM4J是一款灵活且功能强大的...在Java项目中,使用DOM4J配合XPath可以极大地提高开发效率和代码的可读性,尤其在处理复杂XML文档时。
下面是一个简单的示例,展示如何使用DOM4J和XPath找到XML文档中的特定元素: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Node; import org.dom4j.XPath; // 创建XML...
我们可以使用DOM4J和XPath找到所有年龄: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.XPath; // 解析XML文档 Document document = DocumentHelper.parseText...
要使用DOM4J的XPath功能,首先需要引入DOM4J库和JAXP(Java API for XML Processing),后者提供了XPath的实现。在Java项目中,这通常通过添加对应的依赖完成。例如,在Maven项目中,可以在pom.xml文件中加入以下...
DOM4J和XPath结合使用,可以实现高效的XML处理。例如,通过DOM4J解析XML文档,然后使用XPath表达式来快速定位到特定的元素或属性,从而进行读取或修改。这对于处理大型XML文档或者需要频繁查询XML数据的场景尤其有用...
### DOM4J与XPath详解 #### 一、DOM4J简介 **DOM4J**是一款由dom4j.org开发的开源XML解析库,专为Java平台设计,它不仅支持DOM和SAX这...对于想要学习DOM4J和XPath的朋友来说,本文提供了深入的理解和技术实践指南。
下面是一个简单的示例,展示如何使用DOM4J和XPath: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.XPath; // 创建XML文档 String xml = ...
NULL 博文链接:https://bbsanwei.iteye.com/blog/266394
在提供的压缩包"新建文件夹"中,可能包含了DOM4J和XPath相关的JAR文件,这些文件通常用于Java项目中,通过引入这些库,开发者可以直接在代码中使用DOM4J和XPath的功能。在项目构建过程中,将这些JAR添加到类路径...
例如,以下代码展示了如何使用DOM4J和XPath选取特定元素: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.XPath; // 创建XML文档 String xml...
**DOM4J与XPath简介** DOM4J是一个Java库,用于处理XML文档,它提供了灵活且高性能的API,使得XML的解析、创建、查询和修改变得简单。...这份文档集合将为学习和使用DOM4J及XPath提供宝贵的参考资料。
综上所述,DOM4J、XPath和JUnit是Java XML处理和测试的重要工具,它们的结合使用可以帮助开发者高效、准确地处理XML数据并确保代码质量。在实际项目中,熟练掌握这些工具的使用将极大提升开发效率和代码的可维护性。
接下来,我们将探讨如何在Java中使用Dom4J和XPath: 1. **引入依赖**:首先,确保你的项目中已经包含了Dom4J和XPath相关的jar包。这通常可以通过Maven或Gradle等构建工具来添加依赖。 2. **解析XML文档**:使用Dom...
本篇文章将深入探讨如何使用Dom4j,一个流行的Java库,结合XPath来解析XML文件中的路径表达式,同时阐述相对路径和绝对路径的匹配原则。 首先,我们要了解Dom4j库。Dom4j是一个灵活且高效的处理XML的Java库,它提供...
在Java编程中,解析XML文档通常需要借助库,如DOM4J和XPath。DOM4J是一个灵活且功能强大的开源Java XML API,它提供了XML的读取、写入、修改和遍历等功能。XPath则是W3C标准中的一个查询语言,用于在XML文档中查找...
【标题】: "无标题dom4j 和XPath jar包" 描述了本次文件内容的核心,主要涉及两个Java库——dom4j与XPath相关的jar包。这两个库在Java开发中广泛用于XML处理,尤其是在数据解析、文档操作以及信息提取等方面。 **...
Dom4j提供了一个易于使用的API,用于构建、修改和解析XML文档,而XPath则为在文档中高效地定位和选取节点提供了简洁的语言。两者结合使用,可以极大地提高XML处理的效率和灵活性。在实际开发中,了解并熟练运用这...
http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html 的doc文档。