Heim > Artikel > Backend-Entwicklung > Android Dom analysiert die XML-Methode
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 (www.php.cn).