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();
}
}