#2
angeloc2006-12-20 17:50
以下是引用yuiolivia在2006-12-18 15:15:50的发言:
小弟正在学XML关于dom方法,遇到一个难题,请各位大侠们帮忙看看~ 这是一个XML文件代码: <?xml version="1.0" encoding="UTF-8" ?> <root> <TV> 电视机 <price> 三种价格: <item1> 29寸纯平,1388元/台</item1> <item2> 29寸数字高清 1899元/台</item2> <item3> 29寸液晶 5999元/台</item3> </price> <date>生产日期:2005.6</date> <made>北京电视机厂生产</made> </TV> </root> 这是一个java的方法文件代码: import org.w3c.dom.*; import javax.xml.parsers.*; import java.io.*; public class ex5 { public static void main(String args[]) { OutContent outContent=new OutContent(); try{ DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); DocumentBuilder builder=factory.newDocumentBuilder(); Document document=builder.parse(new File("ex5.xml")); Element root=document.getDocumentElement(); String rootName=root.getNodeName(); System.out.println("XML文件根节点的名字:"+rootName); NodeList nodelist=root.getChildNodes(); outContent.output(nodelist); System.out.println("一共有"+outContent.m+"个Text节点"); } catch(Exception e) { System.out.println(e); } } } class OutContent { int m=0; public void output(NodeList nodeList) { int size=nodeList.getLength(); for(int k=0;k<size;k++) { Node node=nodeList.item(k); if(node.getNodeType()==Node.TEXT_NODE) { Text textNode=(Text)node; String content=textNode.getWholeText(); m++; System.out.print(content); } if(node.getNodeType()==Node.ELEMENT_NODE) { Element elementNode=(Element)node; String name=elementNode.getNodeName(); System.out.print(name); NodeList nodes=elementNode.getChildNodes(); output(nodes); } } } } 通过用textpad编译后有错误: cannot resolve symbol symbol : method getWholeText () location: interface org.w3c.dom.Text String content=textNode.getWholeText();没这个方法!!! ^ 1 error 但需要实现的结果如图: 请大家指点,谢谢~ 你的XML文件那么写对么? |
这是一个XML文件代码:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<TV>
电视机
<price>
三种价格:
<item1> 29寸纯平,1388元/台</item1>
<item2> 29寸数字高清 1899元/台</item2>
<item3> 29寸液晶 5999元/台</item3>
</price>
<date>生产日期:2005.6</date>
<made>北京电视机厂生产</made>
</TV>
</root>
这是一个java的方法文件代码:
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class ex5
{
public static void main(String args[])
{
OutContent outContent=new OutContent();
try{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse(new File("ex5.xml"));
Element root=document.getDocumentElement();
String rootName=root.getNodeName();
System.out.println("XML文件根节点的名字:"+rootName);
NodeList nodelist=root.getChildNodes();
outContent.output(nodelist);
System.out.println("一共有"+outContent.m+"个Text节点");
}
catch(Exception e)
{
System.out.println(e);
}
}
}
class OutContent
{
int m=0;
public void output(NodeList nodeList)
{
int size=nodeList.getLength();
for(int k=0;k<size;k++)
{
Node node=nodeList.item(k);
if(node.getNodeType()==Node.TEXT_NODE)
{
Text textNode=(Text)node;
String content=textNode.getWholeText();
m++;
System.out.print(content);
}
if(node.getNodeType()==Node.ELEMENT_NODE)
{
Element elementNode=(Element)node;
String name=elementNode.getNodeName();
System.out.print(name);
NodeList nodes=elementNode.getChildNodes();
output(nodes);
}
}
}
}
通过用textpad编译后有错误:
cannot resolve symbol
symbol : method getWholeText ()
location: interface org.w3c.dom.Text
String content=textNode.getWholeText();
^
1 error
但需要实现的结果如图:
只有本站会员才能查看附件,请 登录
请大家指点,谢谢~