Erstellen Sie zunächst selbst eine XML-Datei: DomTest.xml
<?xml version="1.0" encoding="utf-8"?>
<classes>
<group name="一年级" num="10">
<person name="小明" age="7">
<chinese>
语文80
</chinese>
<english>
英语89
</english>
</person>
<person name="小强" age="8">
<chinese>
语文90
</chinese>
<english>
英语99
</english>
</person>
</group>
<group name="二年级" num="20">
<person name="小文" age="8">
<chinese>
语文85
</chinese>
<english>
英语95
</english>
</person>
<person name="小中" age="9">
<chinese>
语文80
</chinese>
<english>
英语90
</english>
</person>
</group>
</classes>Das analysierte Ergebnis wird wie folgt angezeigt:

Lassen Sie uns den Quellcode analysieren :
/**
* 用dom方式 解析xml 文件
* @param fileName
*/
private String domXmlParse(String fileName) {
String str="";
// xml文档创建工厂
DocumentBuilderFactory docFactory = DocumentBuilderFactory
.newInstance();
// xml文档创建实例
DocumentBuilder docBuilder;
// xml文档
Document doc = null;
InputStream inStream = null;
try {
docBuilder = docFactory.newDocumentBuilder();
// 从assets文件夹下获取文件 转换成输入流
inStream = this.getResources().getAssets().open(fileName);
doc = docBuilder.parse(inStream);
// 获取xml跟元素
Element rootEle = doc.getDocumentElement();
// 二级父元素的list列表
NodeList groupNode = rootEle.getElementsByTagName("group");
// NodeList childNode = rootEle.getElementsByTagName("person");
// 遍历Classe下所有的group
for (int i = 0; i < groupNode.getLength(); i++) {
Element groupEle = (Element) groupNode.item(i);
String groupName = groupEle.getAttribute("name");
String num = groupEle.getAttribute("num");
str =str+"name ="+groupName+" num = "+num+"\n";
Log.e("xml", "name = " + groupName + " num = " + num);
// NodeList personNode = groupNode.item(i).getChildNodes();
NodeList personNode = groupEle.getElementsByTagName("person");
// 遍历group下的所有person
for (int j = 0; j < personNode.getLength(); j++) {
Element personEle = (Element) personNode.item(j);
String name = personEle.getAttribute("name");
String age = personEle.getAttribute("age");
str =str+"personName ="+name+" personAge = "+age+"\n";
Log.e("xml", "name = " + name + " age = " + age);
Element chineseEle = (Element) personEle
.getElementsByTagName("chinese").item(0);
Element englistEle = (Element) personEle
.getElementsByTagName("english").item(0);
String chinese = chineseEle.getFirstChild().getNodeValue();
String english = englistEle.getFirstChild().getNodeValue();
str =str+"chinese = "+chinese+" english = "+english+"\n";
Log.e("xml", "chinese = " + chinese + " english = "
+ english);
}
}
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
return str;
}definiert eine Reihe von Schnittstellen für die analysierte Version eines XML-Dokuments. Der Parser liest das gesamte Dokument ein und erstellt eine speicherresidente Baumstruktur, die der Code dann mithilfe der DOM-Schnittstelle bearbeiten kann. Vorteile: Der gesamte Dokumentbaum befindet sich im Speicher und ist einfach zu bedienen. Nachteile: Das Übertragen des gesamten Dokuments in den Speicher (einschließlich nutzloser Knoten) verschwendet Zeit und Platz Außerdem muss mehrfach auf diese Daten zugegriffen werden; die Hardwareressourcen sind ausreichend (Speicher, CPU).
Das Obige ist der Inhalt von Android Dom Parsing XML. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com).
So starten Sie den MySQL-Dienst
So lösen Sie das Problem verstümmelter Zeichen beim Öffnen einer Webseite
Einführung in Artikel-Tag-Attribute
Was soll ich tun, wenn der Druckspooler nicht gestartet werden kann?
Die übergeordnete Vue-Komponente ruft die Methode der untergeordneten Komponente auf
So verwenden Sie fprintf in Matlab
Was bedeutet es, eine Verbindung zu Windows herzustellen?
Einführung in den Öffnungsort von Windows 10