XML
XML即可拓展标记语言。他是一种简单的数据存储语言,使用一系列简单的标签描述数据,这些标签可以用方便的方式建立。
如pet.xml示例:
<?xml version="1.0" encoding="UTF-8"?> <pet> <dog id="1"> <name>小黑</name> <age>3</age> <weight>100</weight> </dog> <dog id="2"> <name>小白</name> <age>2</age> <weight>80</weight> </dog> </pet>
DOM解析XML
DOM是DocumentObjectModel的缩写,即文档对象模型。XML将数据组织为一棵树,所以DOM就是对这棵树的一个对象的描述。通俗的说,就是通过解析XML文档,为XML文档在逻辑上建立一个树模型,树的节点是一个个对象,我们通过存取这些对象就能够存取XML文档的内容。
见图:
DOM解析代码:
package Talking; import java.io.IOException; import java.io.ObjectInputStream.GetField; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class TestPetXml { public static void main(String[] args){ //从DOM工厂获得DOM解析器 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { //从DOM工厂获得DOM解析器 DocumentBuilder db = dbf.newDocumentBuilder(); //解析XML文档,得到一个Document,即DOM树 Document doc = db.parse("f:/pet.xml"); //得到pet所有节点列表信息 NodeList perList = doc.getElementsByTagName("dog"); //轮循书本信息 System.out.println("XML文件中pet的初始化信息"); for(int i = 0;i<perList.getLength();i++){ //得到pet元素 Element dog = (Element) perList.item(i); //得到dog元素下的id属性的值 String strId = dog.getAttributeNode("id").getNodeValue(); //得到dog元素下的name属性 String strName = dog.getElementsByTagName("name").item(0).getFirstChild().getNodeValue(); //得到dog元素下的age属性 String niAge = dog.getElementsByTagName("age").item(0).getFirstChild().getNodeValue(); //得到dog元素下的weight属性 String weight = dog.getElementsByTagName("weight").item(0).getFirstChild().getNodeValue(); System.out.println("id:"+strId+",name:"+strName+",age:"+niAge+",weight:"+weight); } } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } } }
输出结果:
XML文件中pet的初始化信息
id:1,name:小黑,age:3,weight:100
id:2,name:小白,age:2,weight:80
原文链接:https://www.f2er.com/xml/300040.html