รับครั้งแรก: รับอินสแตนซ์โรงงานของตัวแยกวิเคราะห์ DOM DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
จากนั้นรับตัวแยกวิเคราะห์ DOM จากโรงงาน DOM
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
) แปลงเอกสาร XML ที่จะแยกวิเคราะห์เป็นอินพุตสตรีม เพื่อให้ตัวแยกวิเคราะห์ DOM สามารถแยกวิเคราะห์ได้
InputStream คือ= new FileInputStream("test1.xml");
(4) แยกวิเคราะห์อินพุตสตรีมของเอกสาร XML และรับเอกสาร
เอกสาร doc=dombuilder.parse(is);
(5) รับโหนดรูทของเอกสาร XML
องค์ประกอบ root=doc.getDocumentElement();
(6) รับโหนดลูกของโหนด
หนังสือ NodeList=root.getChildNodes();
นำเข้า java.io.File;
นำเข้า java.io.FileInputStream;
นำเข้า java.io.InputStream;
นำเข้า javax.xml.parsers.DocumentBuilder;
นำเข้า javax.xml.parsers.DocumentBuilderFactory;
นำเข้า org.w3c.dom.Document;
นำเข้า org.w3c.dom.Element;
นำเข้า org.w3c.dom.Node;
นำเข้า org.w3c.dom.NodeList;
XmlReader คลาสสาธารณะ {
โมฆะสาธารณะคงหลัก (สตริง [] args) {
เครื่องอ่าน XmlReader = XmlReader ใหม่ ();
-
XmlReader สาธารณะ () {
DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
พยายาม {
DocumentBuilder domBuilder = domfac.newDocumentBuilder();
InputStream คือ = new FileInputStream (ไฟล์ใหม่ ("D:/test1.xml"));
เอกสาร doc = domBuilder.parse(is);
รากองค์ประกอบ = doc.getDocumentElement();
หนังสือ NodeList = root.getChildNodes();
ถ้า (หนังสือ! = null) {
สำหรับ (int i = 0; i < books.getLength(); i++) {
หนังสือโหนด = books.item (i);
ถ้า(book.getNodeType()==Node.ELEMENT_NODE) {
//(7) รับค่าแอตทริบิวต์ของโหนด
สตริง email=book.getAttributes().getNamedItem("email").getNodeValue();
System.out.println (อีเมล);
//โปรดทราบว่าคุณสมบัติของโหนดก็เป็นโหนดลูกด้วย ประเภทโหนดก็คือ Node.ELEMENT_NODE
//(8) วนไปตามโหนดย่อย
สำหรับ (โหนดโหนด = book.getFirstChild (); โหนด! = null; โหนด = node.getNextSibling ()) {
ถ้า(node.getNodeType()==Node.ELEMENT_NODE) {
ถ้า(node.getNodeName().เท่ากับ("ชื่อ")) {
ชื่อสตริง=node.getNodeValue();
สตริง name1=node.getFirstChild().getNodeValue();
System.out.println (ชื่อ);
System.out.println(name1);
-
ถ้า(node.getNodeName().เท่ากับ("ราคา")) {
ราคาสตริง=node.getFirstChild().getNodeValue();
System.out.println(ราคา);
-
-
-
-
-
-
} จับ (ข้อยกเว้นจ) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
-
-
-