DOM方式解析XML
在根目录下新建languages.xml文件,其内容为
<?xml version="1.0" encoding="UTF-8"?>
<languages cat = "it">
<lan id="1">
<name>java</name>
<ide>Eclipse</ide>
</lan>
<lan id="2">
<name>Swift</name>
<ide>Xcode</ide>
</lan>
<lan id="3">
<name>C#</name>
<ide>Visual Studio</ide>
</lan>
</languages>
ReadXML.java
import java.io.File
import java.io.IOException
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.Node
import org.w3c.dom.NodeList
import org.xml.sax.SAXException
public class ReadXML {
//使用java读取XML数据
public static void main(String[] args) {
//DOM 方式解析XML
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance()
try {
DocumentBuilder builder = factory.newDocumentBuilder()
Document document = builder.parse(new File("languages.xml"))
Element root = document.getDocumentElement()
System.out.println("cat="+root.getAttribute("cat"))
NodeList list = root.getElementsByTagName("lan")
for(int i=0
Element lan = (Element) list.item(i)
System.out.println("----------")
System.out.println("id="+lan.getAttribute("id"))
// Element name = (Element) lan.getElementsByTagName("name").item(0)
// System.out.println("name="+name.getTextContent())
//推荐使用:getChildNodes()
NodeList child = lan.getChildNodes()
for(int j=0
Node element = child.item(j)
if(element instanceof Element){
System.out.println(element.getNodeName()+"="+element.getTextContent())
}
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace()
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
}
运行后的结果为:
id=1
name=java
id=2
name=Swift
id=3
name=C#
ide=Visual Studio