日期:2014-05-20  浏览次数:20648 次

JAVA中的DOM操作,读取XML的问题~~~~~~~
XML文件内容如下:
<?xml   version= "1.0 "   encoding= "gb2312 "   ?>
<books>
<book   id= "001 ">
<name> JAVA </name>
<price> 39.5 </price>
</book>
</books>

我现在的要求是读取到books   book   name   price   id等的节点值,并且把其值JAVA   39.5   001读出来,该怎么读呢?

我现在写的如下:
………………
DocumentBuilderFactory   docFactory   =   DocumentBuilderFactory.newInstance();

DocumentBuilder   docBuilder   =   docFactory.newDocumentBuilder();

InputStream   is   =   new   FileInputStream( "test.xml ");

Document   doc   =   docBuilder.parse(is);

Element   root   =   doc.getDocumentElement();

NodeList   list   =   root.getChildNodes();

for(int   i   =   0;   i   <   list.getLength();   i++){

Node   book   =   list.item(i);

System.out.print((i+1)   +   ". "   +book.getNodeName());

System.out.println( "--------- ");

for(Node   ode=book;node!=null;node=node.getNextSibling()){

System.out.println(node.getNodeName());

}

System.out.println();

}
…………

结果是:
1.#text---------
#text
book
#text

2.book---------
book
#text

3.#text---------
#text
这个#text是什么东西呢????



------解决方案--------------------
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
这个里面写文件。不要在new文件流这样读出来的是以文本读出来的。
而DocumentBuilder 是以XML键值对读出来的。