【发布时间】:2011-11-16 15:09:57
【问题描述】:
我正在尝试使用 Xerces 解析 XML 文档,但我似乎无法访问元素中的数据,下面是一个示例 XML 文档;
<sample>
<block>
<name>tom</name>
<age>44</age>
<car>BMW</car>
</block>
<block>
<name>Jenny</name>
<age>23</age>
<car>Ford</car>
</block>
</sample>
到目前为止,我能产生的唯一输出是;
Sample
block
name
age
car
block
name
age
car
这只是节点名称的列表。我试过 node.getValue(),但这只是返回 null,所以我猜那是错误的!
如何访问里面的数据?这是到目前为止的基础知识;
public static void display(String file) {
try{
DOMParser parser = new DOMParser();
parser.parse(file);
Document doc = parser.getDocument();
read(doc);
}
catch(Exception e){e.printStackTrace(System.err);}
}
public static void read(Node node) {
if(node == null) {return;}
int type = node.getNodeType();
//System.out.print((node));
switch (type) {
case Node.DOCUMENT_NODE: {
display_all(((Document)node).getDocumentElement());
break;
}
case Node.TEXT_NODE:
break;
case Node.ELEMENT_NODE: {
System.out.println(node.getNodeName());
NodeList child = node.getChildNodes();
if(child != null) {
int length = child.getLength();
for (int i = 0; i < length ; i++) {
display_all(child.item(i));
}
}
break;
}
}
}
【问题讨论】:
-
getTextValue()?如果您发布一些代码会更容易。 -
这不是一个有效的方法,我已经添加了代码,
-
getTextContent()? (输入错误)但是为什么要跳过文本节点? -
给予;线程“主”java.lang.AbstractMethodError 中的异常:org.apache.xerces.dom.DeferredTextImpl.getTextContent()Ljava/lang/String; TEXT_NODE 是空白的,因为我尝试的所有内容都返回 null
标签: java xml-parsing xerces