看了《JAVA与XML》终于有了点收获,马上编写一段代码练练手。
用DOM简单的获取XML信息。
先随便写一个简单的XML文件。名为tryxml.xml
<?xml version="1.0" encoding="UTF-8"?>
<EMP_INFO>
<EMP id="001">
<EMPNAME>啊三</EMPNAME>
<EMPDEPT>人事部</EMPDEPT>
<EMPAGE>32</EMPAGE>
</EMP>
</EMP_INFO>
建立个JAVA文件 名为TryXML
import java.io.*;
import org.xml.sax.*;
import org.w3c.dom.*;
import org.apache.xerces.parsers.DOMParser;
public class TryXML{
public void ParseDoc(String uri){
try{
DOMParser MyParser = new DOMParser(); //建立个工人
MyParser.parse(uri); //解析文件
Document XMLDoc = MyParser.getDocument(); //打开一个文件
printXML(XMLDoc); //输出XML信息
}
catch (IOException e){
System.out.println("Error IOException!!!");
}
catch (SAXException e){
System.out.println("Error SAXException!!!");
}
}
public static void main(String[] args){
String uri = args[0];
TryXML TheXML = new TryXML();
TheXML.ParseDoc(uri);
}
public void printXML(Node node){
if (node.getNodeType() == Node.DOCUMENT_NODE){ //节点类型为文件节点时。
System.out.println("XML开始");
NodeList nodelist = node.getChildNodes(); //获取子节点。
if (nodelist != null){
for (int i = 0; i < nodelist.getLength(); i++)
printXML(nodelist.item(i)); //输出每个子节点
}
}
else if (node.getNodeType() == Node.ELEMENT_NODE){ //当节点类型为元素时。
String name = node.getNodeName(); //获取节点名。
System.out.println("元素: [" + name + "]");
NamedNodeMap attList = node.getAttributes(); //获取属性
for (int i = 0; i < attList.getLength(); i++){ //属性为空时不会进入。
Node currentNode = attList.item(i);
System.out.println("属性: [" +
currentNode.getNodeName() + "]"+"= [" +
currentNode.getNodeValue() + "]");
}
NodeList childrenList = node.getChildNodes();//获取子节点。
if (childrenList != null){
for (int ii = 0; ii < childrenList.getLength(); ii++)
printXML(childrenList.item(ii));
}
System.out.println(" [" + name + "] 结束");
}
else if (node.getNodeType() == Node.TEXT_NODE){ //获取字符信息
if(node.getNodeValue()!="/0")
System.out.println("元素内容:"+ node.getNodeValue()+"..");
}
}
}
好了到控制台下 编译一下。然后打 java TryXML tryxml.xml 看看。哈。成功吧?