如果没有匹配的id,则使用xpath和java
我有一个使用标记器的单词列表,所有单词都有一个数字引用,即:Rottweiler=n#10001 我也有一个xml文件,我可以用它来发现罗特韦尔犬是分类狗 但是,其中一些单词的id不在xml文件中,如果id与xml文件中的任何id不匹配,我要做的是让程序移到下一个单词上。现在,如果找不到,我的整个程序就会崩溃 这就是我到目前为止所做的:如果没有匹配的id,则使用xpath和java,java,xml,xpath,Java,Xml,Xpath,我有一个使用标记器的单词列表,所有单词都有一个数字引用,即:Rottweiler=n#10001 我也有一个xml文件,我可以用它来发现罗特韦尔犬是分类狗 但是,其中一些单词的id不在xml文件中,如果id与xml文件中的任何id不匹配,我要做的是让程序移到下一个单词上。现在,如果找不到,我的整个程序就会崩溃 这就是我到目前为止所做的: String search1 = "11111"; String nodePrefix = "n#"+search1; Node theNode = (No
String search1 = "11111";
String nodePrefix = "n#"+search1;
Node theNode = (Node) xpath.evaluate("//*[@id='" + nodePrefix+"']", document, XPathConstants.NODE);
String categ = theNode.getAttributes().getNamedItem("categ").getNodeValue();
System.out.println("Animal "+ nodePrefix + " has category " + categ);
...more code
如果表达式:
Node theNode = (Node) xpath.evaluate("//*[@id='" + nodePrefix+"']", document, XPathConstants.NODE);
未找到节点,它返回null
。所以在这种情况下您不能做任何事情,您应该避免执行程序的其余部分
Node theNode = (Node) xpath.evaluate("//*[@id='" + nodePrefix+"']", document, XPathConstants.NODE);
if(theNode!=null){
String categ = theNode.getAttributes().getNamedItem("categ").getNodeValue();
System.out.println("Animal "+ nodePrefix + " has category " + categ);
...more code
}
还有另一种流控制语句,如
break
,return
甚至是标签,您可以使用它们来避免这个陷阱。在这种情况下,我可以使用if语句来说明节点是否为空,然后运行其余的节点吗?这正是节点所做的=空意味着。如果node不为null,则删除其余代码。