1.导入dom4j.jar;
2.主代码:
<1>查询xml文件的数据:
(1)public void parseXml() throws DocumentException {
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
Element root = doc.getRootElement();
Iterator<Object> it_person = root.elementIterator();
while (it_person.hasNext()) {
Element person = (Element) it_person.next();
Iterator<Object> it_child = person.elementIterator();
int i = 0;
String[] str = new String[3];
while (it_child.hasNext()) {
Element p_info = (Element) it_child.next();
str[i] = p_info.getText();
i++;
}
System.out.println(str[0]+ "的性别:" + str[1] +","+ str[0]+ "的年
龄:" + str[2]);
}
}
(2)List persons = root.elements();//root同于上面的root
for (Object person : persons) {
Element p = (Element) person;
Iterator<Element> it_child = p.elementIterator();
int i = 0;
String[] str = new String[3];
while (it_child.hasNext()) {
Element p_info = (Element) it_child.next();
str[i] = p_info.getText();
i++;
}
System.out.println(str[0] + "的性别:" + str[1] + "," + str[0] + "的
年龄:"+ str[2]);
}
}
(3)public void parseXml2() throws DocumentException {
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
doc.accept(new VisitorSupport() {
public void visit(Element e) {
System.out.println(e.getText());
}
});
}
<4>创建xml文件
public void createDoc() throws IOException {
Document doc=DocumentHelper.createDocument();
doc.setXMLEncoding("gbk");
Element lib=doc.addElement("libary");//创建根节点libary
Element book=lib.addElement("book");
Element book_name=book.addElement("name");
book_name.setText("大话西游");
Element book_author=book.addElement("auther");
book_author.setText("周星驰");
XMLWriter xw = new XMLWriter(new FileWriter("d:/lib.xml"));
xw.write(doc);
xw.close();
OutputFormat of=OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter("d:/lib.xml"),of);
xw.write(doc);
xw.close();
}
<5>向xml文件添加数据:
public void addElement(Element e) throws Exception {
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
Element root = doc.getRootElement();
Element person = root.addElement("person");
Element pname = person.addElement("name");
pname.setText("aonier");
Element psex = person.addElement("sex");
psex.setText("male");
Element page = person.addElement("age");
page.setText("37");
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter("src/person.xml"), of);
xw.write(doc);
xw.close();
}
<6>修改xml文件
(1)public void updateElement() throws DocumentException {
SAXReader reader = new SAXReader();
final Document doc = reader.read("src/person.xml");
doc.accept(new VisitorSupport() {
public void visit(Element e) {
if (e.getName().equals("age")&&null!=e.getName()
&&!("".equals(e.getName()))) {
int i = Integer.parseInt(e.getTextTrim())* 2;
e.setText(String.valueOf(i));
}
try {
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter(
"src/person.xml"), of);
xw.write(doc);
xw.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
}
(2)导入jaxen-1.1.1.jar;
(3)public void updateElement2() throws DocumentException, IOException {
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
List<Object> ages = doc.selectNodes("/class/person/age");
for (Object age : ages) {
Element eage = (Element) age;
int age2 = Integer.parseInt(eage.getText());
if (age2 > 50) {
eage.setText(age2 * 2 + "");
}
}
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter("src/person.xml"), of);
xw.write(doc);
xw.close();
}
(4)添加属性:
public void addAttribute() throws Exception{
SAXReader reader = new SAXReader();
Document doc = reader.read("src/person.xml");
List ages = doc.selectNodes("/class/person/age");
for(Object a : ages){
Element age = (Element)a;
Date d = new Date();
d.setYear(d.getYear()- Integer.parseInt(age.getTextTrim()));
age.addAttribute("birth", d.toLocaleString());
}
OutputFormat of = OutputFormat.createPrettyPrint();
of.setEncoding("gbk");
XMLWriter xw = new XMLWriter(new FileWriter("src/person.xml"), of);
xw.write(doc);
xw.close();
}
分享到:
相关推荐
在Python中解析XML文件是一种常见的需求,特别是在处理配置文件、数据交换格式以及其他需要结构化数据的应用场景中。本文将详细介绍如何使用两种流行的方法——`MiniDom`和`ElementTree`来解析XML文件。 #### 1. ...
本文将深入探讨如何使用C++来解析XML文件,主要围绕“C++实现对xml文件的解析”这一主题展开。 XML文件通常包含一系列元素,每个元素都有开始标签、结束标签和可能的属性。C++中解析XML文件的方法多种多样,这里...
本篇文章将深入探讨如何使用JDOM解析XML文件。 首先,我们需要理解JDOM的基本结构。JDOM通过Document对象表示整个XML文档,Element代表XML元素,Attribute表示元素属性,Text表示元素内的文本内容。这些类构成了...
JS 解析 XML 文件 作为一名 IT 行业大师,我将从给定的...使用 JavaScript 解析 XML 文件需要了解 XML 文档的结构和各个节点的类型,选择合适的解析方法,考虑浏览器兼容性问题,并掌握相关的 JavaScript 语法和方法。
以下是一个使用SAX解析XML文件的基本步骤: 1. **创建解析器**: 首先,我们需要创建一个SAX解析器实例。在Java中,这通常通过`SAXParserFactory`类完成。设置解析器属性,然后调用`newSAXParser()`方法获取`...
Java解析XML文件是Java开发中常见的一项任务,XML(eXtensible Markup Language)作为一种结构化数据存储格式,被广泛用于数据交换、配置文件和Web服务等场景。本篇文章将详细探讨Java如何利用DOM4J库来解析XML文件...
SAX解析XML文件的实例。一个项目同时用dom解析和sax解析xml文件貌似会报错,项目框架建一直是用sax和dom4j解析xml文件的。当我用dom解析xml文件。导入包后就报错识别不了xml文件的编码格式。于是做了一个sax解析xml...
在C++中,可以使用MSXML库的`IXMLDOMDocument`接口来加载并解析XML文件。以下是一个示例: ```cpp #include using namespace MSXML2; void parseXMLFile() { IXMLDOMDocumentPtr xmldoc; HRESULT hr; hr = ...
在Windows环境下,使用VC++作为开发工具,我们可以利用MSXML组件来解析XML文档并构建出相应的树结构。MSXML是Microsoft提供的一个COM组件,它提供了XML文档的读取、写入和操作功能,对于C++开发者来说,通过COM接口...
在Java编程环境中,解析XML文件是一项常见的任务,特别是在数据处理和集成中。XML(Extensible Markup Language)是一种结构化数据格式,广泛用于存储和传输数据。本教程将介绍如何使用Java解析XML文件,并将解析...
在QT中解析XML文档主要依赖于QDomDocument类和相关的辅助类,如QDomElement、QDomNode等。XML(eXtensible Markup Language)是一种结构化数据格式,常用于存储和传输数据。 XML文档由一系列元素组成,每个元素都有...
本文将深入探讨如何使用SAX、DOM和Pull解析器解析XML文件,以及如何生成XML文件。我们将同时展示Java和Kotlin两种语言的实现方法。 一、SAX解析XML文件 SAX(Simple API for XML)是一种事件驱动的解析器,它不会一...
XmlPullParser是Android系统提供的一种解析XML文件的API,它是一种基于事件驱动的解析方式,能够高效、节省资源地处理XML文档。在这个“XmlPullParser解析Xml文件解析demo”中,我们将探讨如何利用XmlPullParser来...
在Microsoft Foundation ...通过这些类,开发者可以轻松地解析XML文件,操作XML数据,并响应XML事件,从而实现更灵活的程序设计。理解并熟练掌握这些类的使用,对于在Windows平台上开发涉及XML处理的应用程序至关重要。
在`xml.cpp`和`xml.h`这两个文件中,通常会包含MFC解析XML的具体实现,例如创建`CXMLDOMDocument`对象、加载XML文件、遍历并处理XML节点的代码。通过阅读和理解这些代码,你可以更好地掌握如何在MFC应用中有效地解析...
在STM32这样的微控制器上解析XML文件,可以使得嵌入式系统具备更强的数据处理能力。 STM32F107是一款高性能、低成本的STM32系列微控制器,具有浮点运算单元(FPU),支持USB OTG和CAN接口,适用于各种工业和消费类...
以下是一些关于解析XML文件的知识点: 1. XML结构: - 根元素:XML文档必须有一个根元素,所有其他元素都包含在这个根元素内。 - 元素:XML中的基本单位,用尖括号 `< >` 包围,如 `<book>`。 - 属性:元素可以...
以下是一个简单的DOM解析XML文件的Java示例,展示了如何读取和打印XML文件`<users>`标签内的所有`<user>`元素: ```java import java.io.InputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml...
### 解析XML文件(字符串)的两种方法 在软件开发过程中,XML作为一种常见的数据交换格式,在数据传输和存储中扮演着重要角色。因此,能够高效地解析和操作XML文件是必不可少的能力之一。本文将详细介绍使用Java...
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML