java Document里判断XML文件中有无此节点 5
<tiripPackage>-<businessContent>-<subPackage><id>001</id><content>123</content></subP...
<tiripPackage>
- <businessContent>
- <subPackage>
<id>001</id>
<content>123</content>
</subPackage>
</businessContent>
</tiripPackage>
怎么判断xml文件里有没有节点content
Document xmlDoc = DocumentHelper.parseText(str);
Element root = xmlDoc.getRootElement();//根节点
String content = root.element("content"); //如果没有content就报异常了
Document 这个类里没有直接判断有无次节点方法吗? 展开
- <businessContent>
- <subPackage>
<id>001</id>
<content>123</content>
</subPackage>
</businessContent>
</tiripPackage>
怎么判断xml文件里有没有节点content
Document xmlDoc = DocumentHelper.parseText(str);
Element root = xmlDoc.getRootElement();//根节点
String content = root.element("content"); //如果没有content就报异常了
Document 这个类里没有直接判断有无次节点方法吗? 展开
展开全部
使用 XPath。
try (final FileReader reader = new FileReader("xpathexample.xml")){
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "count(//content)";
InputSource source = new InputSource(reader);
Number count = (Number) xpath.evaluate(expression, source, XPathConstants.NUMBER);
System.out.println(count.intValue());
} catch (final IOException | XPathExpressionException e) {
System.err.println(e.getMessage());
}
dom4j 可以使用 Document的selectSingleNode 返回null的就是没有
<PrimaryKey><Key Ref="o30"/></PrimaryKey>
val node = doc.selectSingleNode("//PrimaryKey/Key/@R")
node: org.dom4j.Node = null
val node = doc.selectSingleNode("//PrimaryKey/Key/@Ref")
node: org.dom4j.Node = org.dom4j.tree.DefaultAttribute@151d52e [Attribute: name Ref value "o30"]
2013-09-09
展开全部
private void doublexml(Element ele)
{
StringBuilder sb = new StringBuilder();
for(Iterator i = ele.elementIterator();i.hasNext();)
{
Element node = (Element)i.next();
System.out.println("节点名:"+node.getName());
String nodeName = node.getName();
if(node.attributes()!=null && node.attributes().size()>0)
{
for(Iterator j = node.attributeIterator();j.hasNext();)
{
Attribute item = (Attribute)j.next();
System.out.print("属性名:"+item.getName()+"\t属性值:"+item.getValue()+"\n");
}
}
if(node.getText().length()>0)
{
System.out.println("节点值:"+node.getText());
String nodeText = node.getText();
}
if(node.elementIterator().hasNext())
{
this.doublexml(node);
}
}
}
{
StringBuilder sb = new StringBuilder();
for(Iterator i = ele.elementIterator();i.hasNext();)
{
Element node = (Element)i.next();
System.out.println("节点名:"+node.getName());
String nodeName = node.getName();
if(node.attributes()!=null && node.attributes().size()>0)
{
for(Iterator j = node.attributeIterator();j.hasNext();)
{
Attribute item = (Attribute)j.next();
System.out.print("属性名:"+item.getName()+"\t属性值:"+item.getValue()+"\n");
}
}
if(node.getText().length()>0)
{
System.out.println("节点值:"+node.getText());
String nodeText = node.getText();
}
if(node.elementIterator().hasNext())
{
this.doublexml(node);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
获取节点名称然后和content做比较就可以了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Document doc = DocumentHelper.parseText(ss);
Element root = doc.getRootElement();
Element content = root.element("content ");
你判断下content.getText(); 是不是空
LZ,你直接用String接受 root.element("content"); 不会包错吗?
try——catchy一下 捕捉那个异常就是了
追问
不是content里面的内容为空,而是没有content这个节点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你会读xml文件中节点吧,然后读出来看看是否为空就可以了 具体怎么写我记不得了
追问
我读节点,如果没有此节点直接报异常了
追答
遍历所有节点,判断这些节点中是否包含你要的节点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询