XML样例
<?xml version="1.0" encoding="utf-8" ?>
<!-- xml的一个声明头,告诉解析器版本号与编码集 -->
<!--
在 xml文件中所有的标签都可以自定义,
1.必须成双成对,有头有尾。
2.xml文件中有且只有一个根节点
3.xml标签可以带有属性,可以相互嵌套
4.xml标签命名一定要见名知意
5.xml标签一般都是小写。
-->
<Students>
<Student id="001">
<name>学生一</name>
<sex>男</sex>
<age>16</age>
</Student>
<Student id="002">
<name>学生二</name>
<sex>女</sex>
<age>16</age>
</Student>
<Student id="003">
<name>学生三</name>
<sex>女</sex>
<age>16</age>
</Student>
</Students>
java引入dom4j后进行读取操作
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.tree.DefaultAttribute;
import java.io.File;
import java.util.List;
public class XmlParseDemoOne {
public static void main(String[] args) throws DocumentException {
// 1.获取xml对应的document对象
Document document = new SAXReader().read(new File("./src/student.xml"));
// 2.获取根结点对象
Element rootElement = document.getRootElement();
// 3.获取所有student节点
List<Element> nodeTypeName = rootElement.selectNodes("Student");
// nodeTypeName.forEach(item->System.out.println(item));
// xpath
List<Element> list = rootElement.selectNodes("//name");
// 获取对应的值
// list.forEach(item-> System.out.println(item.getStringValue()));
List<DefaultAttribute> list1 = rootElement.selectNodes("//@id");
// list1.forEach(item->System.out.println(item.getValue()));
List list2 = rootElement.selectNodes("//Students//Student[1]");
System.out.println(list2);
}
}
java对Xml进行写入操作
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;
import java.io.*;
public class XmlParseDemoThree {
public static void main(String[] args) throws IOException, DocumentException {
// 1.获取xml对应的document对象
// 2.获取根节点对象。
Document document = new SAXReader().read(new File("./src/teacher.xml"));
Element rootElement = document.getRootElement();
rootElement.remove(rootElement.attribute("id"));
/** 格式化输出,类型IE浏览一样 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML编码 */
format.setEncoding("UTF-8");
XMLWriter xmlWriter = new XMLWriter(new FileWriter(new File("./src/teacher.xml")),format);
xmlWriter.write(document);
xmlWriter.close();
}
}