如何在Java dom xml解析中从我的Node解析中删除#text
发布时间:2020-05-30 18:35:27 所属栏目:Java 来源:互联网
导读:所以我有以下代码,我几乎从 here复制.但问题是我的文本节点不包含任何文本,他们只有属性.所以我喜欢 Random name=Katie num=5/Random 我正在使用此代码来解析它: private void listNodes(Node node, String indent) { String nodeName = node.getNodeName();
|
所以我有以下代码,我几乎从 here复制.但问题是我的文本节点不包含任何文本,他们只有属性.所以我喜欢 <Random name="Katie" num="5"></Random> 我正在使用此代码来解析它: private void listNodes(Node node,String indent)
{
String nodeName = node.getNodeName();
System.out.println(indent + " Node is: " + nodeName);
if(node instanceof Element && node.hasAttributes())
{
System.out.println(indent + "Attributes are: ");
NamedNodeMap attrs = node.getAttributes();
for (int i = 0; i < attrs.getLength(); i++)
{
Attr attribute = (Attr) attrs.item(i);
System.out.println(indent + attribute.getName() + "=" + attribute.getValue());
}
}
NodeList list = node.getChildNodes();
if (list.getLength() > 0)
{
for (int i = 0; i < list.getLength(); i++)
{
listNodes(list.item(i),indent + " ");
}
}
}
出于某种原因,我的空文本节点都说
有谁知道在解析xml文件时如何跳过空节点文本? 谢谢, 玩笑 解决方法使用DTD验证,您可以让解析器自动抑制元素之间的空白.但是,要修改特定实现,可以测试Text节点,如果它们为空则忽略它们.private void listNodes(Node node,String indent)
{
if (node instanceof Text) {
String value = node.getNodeValue().trim();
if (value.equals("") ) {
return;
}
}
String nodeName = node.getNodeName();
System.out.println(indent + " Node is: " + nodeName);
... (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
