标题:关于DOM的一个问题
只看楼主
yuiolivia
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2005-12-5
 问题点数:0 回复次数:3 
关于DOM的一个问题
小弟正在学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
但需要实现的结果如图:

请大家指点,谢谢~
搜索更多相关主题的帖子: DOM 
2006-12-18 15:15
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
得分:0 
以下是引用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文件那么写对么?


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-20 17:50
liyueyu
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-12-3
得分:0 
你把打印的内容放在JTable里面不好么?控制台输出多乱啊
2006-12-29 19:19
liyueyu
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-12-3
得分:0 

还有你的XML文件有问题,也需要改。

2006-12-29 19:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-110292-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019804 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved