dom4j创建XML:
//用dom4j生成xml文件
Document document = DocumentHelper.createDocument();
Element newspaperElement = document.addElement("NewspaperSync.REQ");
newspaperElement.addComment("this is a newspaper xml");
newspaperElement.addProcessingInstruction("MsgHeader", "text");
Element msgHeaderElement = newspaperElement.addElement("MsgHeader");
Element transactionIDElement = msgHeaderElement.addElement("TransactionID");
for(int i=1;i<5;i++){
Element id = transactionIDElement.addElement("ID");
id.setText("i"+i);
}
Element timestampElement = msgHeaderElement.addElement("Timestamp");
Element viasElement = msgHeaderElement.addElement("Vias");
Element viaElement = viasElement.addElement("Via");
viaElement.setText("100.2000.12345");
Element viabakElement = viasElement.addElement("Via");
viabakElement.setText("200.3000.56789");
try{
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter output = new XMLWriter(new FileWriter(new File(sendESGxml+"1111.xml")), format); //sendESGxml是路径
output.write(document);
output.close();
}catch(IOException e){
System.out.println(e.getMessage());
}
dom4j解析XML,并修改其中内容:
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("f:/xml/1111.xml"));
List list = document.selectNodes("//MsgHeader/TransactionID");
Iterator iterator = list.iterator();
while(iterator.hasNext()){
Element element = (Element) iterator.next();
Iterator iter = element.elementIterator("ID");
while(iter.hasNext()){
Element idElement = (Element)iter.next();
if(idElement.getText().equals("i2")){
idElement.setText("island");
}
}
}
XMLWriter output = new XMLWriter(new FileWriter(new File("c:/22.xml")));
output.write(document);
output.close();
}
其中用到了2个包:分别是dom4j-1.6.1.jar和jaxen.jar
注:在创建xml时只需要dom4j包就可以了,而在解析修改xml的时候必须有jaxen包才行,否则会报错。
错误描述:Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/JaxenException
at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)
at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164)
at com.elecpaper.buss.action.dom4jUpdate.main(dom4jUpdate.java:24)
分享到:
相关推荐
在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行的、功能强大的开放源代码库。这个库不仅简化了XML处理,还提供了XPath和XSLT的支持,使其成为Java开发者处理XML的首选工具之一。 **...
4. **文档构建**:除了解析XML,DOM4J也方便地提供了构建XML文档的功能。你可以创建新的元素、属性,以及它们之间的关系,然后将整个结构写入XML文件。 5. **事件驱动编程**:DOM4J支持SAX事件驱动的解析模式,可以...
1. **解析XML文档**:DOM4J提供了多种解析器,如SAX和DOM解析器,可以高效地将XML文档转换为树形结构。通过这种方式,开发者可以方便地遍历和访问XML元素。 2. **构建XML文档**:DOM4J允许动态创建XML文档,可以...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,...通过`dom4j-1.6.1.jar`和`jaxen-1.1.1.jar`这两个jar包,开发者可以获得完整的DOM4J功能,实现XML的解析、构建、查询和转换等一系列操作。
本篇将深入讲解DOM4J解析XML的原理与实践,同时提供相关源代码供参考。 一、DOM4J概述 DOM4J是基于DOM模型的,但它比Java标准的DOM API更轻量级,性能更优。DOM4J的主要特点包括: 1. 支持XPath:DOM4J提供了对...
为了在Java项目中使用DOM4J解析XML,你需要将这两个jar文件(dom4j-1.6.1和jaxen-1.1-beta-7.jar)添加到你的类路径(classpath)中。这可以通过在IDE中配置构建路径,或者在命令行中指定 `-cp` 参数来完成。一旦...
解析XML文件时,DOM4J提供了两种主要的方式:DOM阅读器和SAX阅读器。 - **DOM阅读器**:首先,通过`DocumentFactory.createDocument()`方法创建一个`Document`对象,然后使用`read()`方法读取XML文件,将整个XML...
在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...
**DOM4J-1.6.1完整jar包** DOM4J是一个强大的Java库,用于处理XML、XPath和XSLT。它是一个灵活的、高性能的开源库,为XML解析和操作提供了丰富的功能。DOM4J 1.6.1是这个库的一个稳定版本,包含了对XML文档的创建、...
这个压缩包包含两个重要的JAR文件,即dom4j-1.6.1.jar和jaxen-1.1.1.jar,它们在解析XML时起着关键作用。 1. **DOM4J库(dom4j-1.6.1.jar)**: - DOM4J提供了一种基于事件的模型,类似于DOM(Document Object ...
在本主题中,我们将深入探讨DOM4J如何解析XML,并介绍如何在Java项目中使用它,特别是在包含了jar包的情况下。 首先,XML(eXtensible Markup Language)是一种标记语言,常用于存储和传输数据。DOM(Document ...
在这个场景中,我们关注的是"XML_dom4j_解析器 jar包",即`dom4j-1.6.1.jar`,它是用来解析XML文件的。 DOM4J的主要特点和功能包括: 1. **XML解析**:DOM4J支持多种解析方式,如DOM、SAX和STAX。DOM是将整个XML...
1. **XML解析**:DOM4J支持多种解析方式,包括SAX解析、DOM解析和DOM4J自己的解析器。SAX解析适用于大文件,因为它按需读取,节省内存;DOM解析则将整个XML文档加载到内存,适合小文件;DOM4J解析器则提供了更灵活的...
使用DOM解析XML需要的jar包通常包含在Java的标准库中,无需额外引入。 2. SAX (Simple API for XML) SAX是一种事件驱动的解析器,它不会一次性加载整个XML文档,而是逐行读取并触发相应的事件。这种方式对内存占用...
`dom4j.jar` 是一个强大的XML处理库,它扩展了DOM4J的特性,提供了更加灵活和高效的操作方式。DOM4J不仅支持DOM和SAX解析器,还支持XPath查询,这使得定位XML节点变得简单。DOM4J在性能上优于标准DOM,同时提供了...
本篇将详细介绍使用DOM4j.Jar和JDOM.jar这两个Java库来解析XML文件的方法。 **DOM4j** DOM4j是一个灵活且功能强大的Java XML API,它提供了全面的XML处理解决方案,包括读取、写入、操作和转换XML文档。DOM4j的...
5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...
DOM4J可以加载和解析XML文档,然后利用XPath表达式进行数据检索。这种方式避免了传统遍历DOM树的低效,尤其是在大型XML文档中,XPath的查询性能优势尤为明显。 在Java项目中,通常会将DOM4J和XPath的jar包打包在...
如果不使用Maven,可以下载dom4j的jar包并将其添加到项目的类路径中。 接下来,我们将逐步创建一个XML文档: 1. **创建Document对象**:这是XML文档的根节点,可以通过`DocumentFactory`的`createDocument()`方法...