为了使用 XML 文件中的信息,必须解析文件以创建一个 Document 对象。 Document 对象是一个接口,因而不能直接将它实例化;一般情况下,应用程序会相应使用一个工厂。准确的过程因实现而异,但是基本思想是相同的。(同样
,Level 3 标准化了这个任务。)在这个例子 Java 环境中,解析文件是一个三步过程:
创建 DocumentBuilderFactory。 DocumentBuilderFactory 对象创建
DocumentBuilder。
创建 DocumentBuilder。 DocumentBuilder 执行实际的解析以创建 Document
对象。
解析文件以创建 Document 对象。
现在您可以开始构建应用程序了。
如:
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.*;
import java.io.*;
public class ShowDomImpl {
public static void main (String args[])
{
try
{
File file=new File("order.xml");
Document doc=null;
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
DocumentBuilder docb = dbf.newDocumentBuilder();
doc=docb.parse(file);
}
catch (Exception e) {}
}
}
获得根节点
为
doc=docb.parse(file);
Element root=doc.getDocumentElement();
System.out.println("The root of the xml document is
"+root.getNodeName());
获得根节点列表:
NodeList children=root.getChildNodes();
System.out.println("There is "+children.getLength()+"Node.");
使用getFirstChild()和getNextSibling()
for(Node child=root.getFirstChild();child!
=null;child=root.getNextSibling())
在多层孩子中实现递归
定义一函数
public static void stepThrough(Node start)
{
System.out.println(start.getNodeName()
+"="+start.getNodeValue());
for(Node child=start.getFirstChild();child!
=null;child=start.getNextSibling())
{
stepThrough(child);
}
}
在主函数中调用
setThrough(root)