package ext.elead.peixun.reader;
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;
/**
* 读去xml文档(DOM方式读去)纯JAVA代码读去
* 读去方式,是一次性将所有的数据都读到内存中,这种方试代价很高
* @author chentl
*@since 2011-11-30
*@version chentl
*/
public class ReadXML
{
public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException
{
read();
}
public static void read() throws ParserConfigurationException, SAXException, IOException
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder buider=factory.newDocumentBuilder();
//获取要读得xml文件
Document doc= buider.parse("F:"+File.separator+"moldFolder.xml");
//得到文件中的总节点下面那些节点(最大的节点的子节点);
NodeList nodelist=doc.getElementsByTagName("moldFolder");//获取moldeFolder节点
//用来存放nodelist节点下面的子节点
NodeList seconlist=null;
//得到nodelist下面的每个子节点
for(int i=0;i<nodelist.getLength();i++)
{
Node node=nodelist.item(i);
Document d=node.getOwnerDocument();
seconlist=d.getElementsByTagName("secondfolder");//获取secondfolder节点
}
//输出nodelist节点中的属性与文本
for(int j=0;j<seconlist.getLength();j++)
{
Element element=(Element)seconlist.item(j);
System.out.println("节点名"+element.getNodeName());
System.out.println("属性"+element.getAttribute("domain"));
System.out.println("文本"+element.getTextContent());
System.out.println();
}
}
}