package com.loymtech.test;
import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* 根据xml节点name来遍历节点数据
*
* @author lenovo
*
*/
public class TestDom4J {
public void modifyDocument(File inputXml) {
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(inputXml);
Element rootElt = document.getRootElement();
Iterator iter = rootElt.elementIterator("occasion");
while (iter.hasNext()) {
Element recordEle = (Element) iter.next();
String name = recordEle.attributeValue("name");
if ("booking".equals(name)) {
Iterator<Element> children = recordEle.elementIterator(); //元素的子元素的iterator,其中每个元素都是Element对象
while (children.hasNext()) {
Element child = children.next();
Iterator<Attribute> attributes = child
.attributeIterator();
while (attributes.hasNext()) {
Attribute attribute = attributes.next();
System.out.println(attribute.getName() + " : "
+ attribute.getValue());
}
System.out.println();
}
}
}
}
catch (DocumentException e) {
System.out.println(e.getMessage());
}
}
public static void main(String[] argv) {
TestDom4J dom4jParser = new TestDom4J();
dom4jParser.modifyDocument(new File(
"d:\\testfile\\123.xml"));
}
}
相关推荐
- 遍历XML节点:通过调用readNext()方法,每次移动到下一个节点。根据readNext()返回的QXmlStreamTokenType枚举值,可以判断当前节点的类型,如StartElement、EndElement、Characters等。 - 获取节点信息:在遍历...
遍历DOM时,可以使用非递归方式,例如通过while循环和nextSibling或firstChild属性来遍历节点,这样可以避免递归调用栈的增长。以下是一个简单的示例: ```javascript var node = xmlDoc.documentElement....
总结来说,这个项目演示了如何利用Qt的QDomDocument类处理XML文件,通过递归函数遍历XML树,并使用虚函数实现多态性,为不同类型的XML节点提供灵活的处理策略。这不仅教会我们XML解析的基本技术,还展示了面向对象...
在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...
在本主题“DOM遍历所有XML节点,并且重新生成XML”中,我们将深入探讨如何利用DOM API遍历XML文档的所有节点,并根据需求重新构建XML文档。 首先,让我们了解XML的基本结构。XML(eXtensible Markup Language)是一...
此外,DOM4J还支持XPath查询,允许我们根据特定表达式查找XML中的元素,这在处理大型XML文档时非常有用。 ```java XPath xpath = XPathFactory.instance().create("//element[@attr='value']"); List<Element> ...
4. 遍历节点:如果需要查找的属性可能出现在多个节点上,可以使用`SelectNodes()`方法,它返回一个`XmlNodeList`对象,包含了所有匹配的节点。 ```csharp XmlNodeList nodeList = doc.SelectNodes("//elementName[@...
DOM4J提供了方便的方法来遍历XML文档中的元素和属性: ```java List<Element> elementList = rootElement.elements(); for (Element element : elementList) { System.out.println(element.getName()); ...
总之,jQuery 1.5通过其强大的API简化了XML节点属性的遍历,使开发者能够更加专注于应用逻辑,而不是底层的DOM操作。通过结合"test.html"和"jquery-1.5.js",我们可以创建一个直观的实例来演示这一功能。
- DOM4J支持XPath表达式来快速定位XML中的节点。例如,`XPathFactory factory = XPathFactory.instance(); XPath xpath = factory.newXPath(); Node node = xpath.selectSingleNode(document, "/root/element")`...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单且灵活的方式来解析、创建、修改和操作XML数据。这个资源包显然包含了关于如何使用DOM4J进行XML操作的代码示例,尤其是生成XML文件的部分。下面我们将...
总结来说,dom4j提供了一种简洁的方式将XML字符串转换为Java Bean对象。通过创建一个工具类,我们可以定义一个通用的方法,根据XML结构自动填充Bean的属性。这种方式在处理XML数据到Java对象的映射时非常实用。在...
总结来说,DOM4J为Java开发者提供了一套全面的API来处理XML文档,包括解析、创建、修改和序列化XML。在`CacheInit.java`这个示例中,可能包含了利用DOM4J解析`emailTemplateConfig.xml`文件,提取或修改其中的配置...
4. 遍历XML节点:通过`rootElement`,我们可以访问所有子元素。例如,如果`student.xml`包含学生列表,我们可以通过迭代遍历每个学生元素: ```java for (Element student : rootElement.elements("student")) { ...
在Java中,DOM4J提供了一种灵活的方式来操作XML文档,包括解析、遍历、修改节点以及序列化回XML字符串。 **DOM4J的基本概念:** 1. **Element(元素)**:XML文档中的每一个标签都是一个Element,它包含属性、文本...
DOM4J不仅是一个解析XML的工具,还可以用作XML数据绑定库,将XML数据映射到Java对象。此外,DOM4J还支持Java 5的注解,这使得XML文档的处理更加直观和简洁。结合其灵活性和高性能,DOM4J成为Java开发人员处理XML文档...
4. 反射机制:在`Info.java`类中定义与XML结构匹配的字段,然后利用Java的反射API(如`Class.forName()`,`Class.getDeclaredFields()`,`Field.setAccessible(true)`,`Field.setValue()`)将XML节点值设置到对应的...
4. 使用Iterator遍历根节点,获取每个student节点,再遍历student节点下的name、college、telephone等子节点,并通过相应的方法获取节点名称和值。 #### SAX解析XML文件 SAX解析方式是一种基于事件的解析方法。SAX...
**DOM4J解析XML数据** DOM4J是一个强大的Java库,专门用于处理XML文档,它提供了灵活且高效的方式来解析、创建、修改XML内容。在Java世界中,XML处理有多种方式,如DOM、SAX、StAX等,而DOM4J因其易用性和功能丰富...