احصل أولاً على: احصل على نسخة المصنع لمحلل DOM DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
ثم احصل على محلل DOM من مصنع DOM
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
) قم بتحويل مستند XML ليتم تحليله إلى دفق إدخال حتى يتمكن محلل DOM من تحليله
InputStream is= new FileInputStream("test1.xml");
(4) تحليل دفق الإدخال لمستند XML والحصول على مستند
الوثيقة doc=dombuilder.parse(is);
(5) احصل على العقدة الجذرية لمستند XML
جذر العنصر=doc.getDocumentElement();
(6) احصل على العقد الفرعية للعقدة
NodeList books=root.getChildNodes();
استيراد java.io.File؛
import java.io.FileInputStream;
استيراد java.io.InputStream؛
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
الفئة العامة XmlReader {
public static void main(String[] args) {
قارئ XmlReader = new XmlReader();
}
عام XmlReader () {
DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
يحاول {
DocumentBuilder domBuilder = domfac.newDocumentBuilder();
InputStream is = new FileInputStream(new File("D:/test1.xml"));
المستند doc = domBuilder.parse(is);
جذر العنصر = doc.getDocumentElement();
كتب NodeList = root.getChildNodes();
إذا (كتب! = فارغة) {
for (int i = 0; i < books.getLength(); i++) {
كتاب العقدة = books.item(i);
إذا (book.getNodeType()==Node.ELEMENT_NODE) {
//(7) احصل على قيمة السمة للعقدة
String email=book.getAttributes().getNamedItem("email").getNodeValue();
System.out.println(email);
// لاحظ أن خصائص العقدة هي أيضًا عقدها الفرعية. نوع العقدة الخاص به هو أيضًا Node.ELEMENT_NODE
//(8) التنقل بين العقد الفرعية
for(Node العقدة=book.getFirstChild();node!=null;node=node.getNextSibling()) {
إذا (node.getNodeType()==Node.ELEMENT_NODE) {
إذا (node.getNodeName().equals("name")) {
String name=node.getNodeValue();
String name1=node.getFirstChild().getNodeValue();
System.out.println(name);
System.out.println(name1);
}
إذا (node.getNodeName().equals("السعر")) {
سعر السلسلة=node.getFirstChild().getNodeValue();
System.out.println(price);
}
}
}
}
}
}
} قبض (الاستثناء ه) {
// TODO كتلة الالتقاط التي تم إنشاؤها تلقائيًا
printStackTrace();
}
}
}