如果子句在recursion函数中
我试图build立一个遍历Dom树的函数,当且仅当节点名称不等于script
和style
。 这里是function:
public static void PostOrderTR(Node node) throws XPathExpressionException, MalformedURLException, SAXNotRecognizedException, SAXNotSupportedException, ParserConfigurationException, IOException, SAXException { if (node == null || node.getNodeName() == null) { return; } if(!"script".equals(node.getNodeName())||!"style".equals(node.getLocalName())|| !"style".equals(node.getNodeName())) { //do something PostOrderTR(node.getFirstChild()); } if(!"script".equals(node.getNodeName())||!"style".equals(node.getLocalName())|| !"style".equals(node.getNodeName())) PostOrderTR(node.getNextSibling()); }
但在实践中,结果完全相反。 它遍历所有的节点,包括script
和style
。 我已经尝试用||
replace&&
没有什么改变。
您的条件不起作用,因为所有节点名称不是“脚本”或不是“样式”,所以所有节点名称都通过。
正确的条件是:
if(!("script".equals(node.getNodeName())||"style".equals(node.getLocalName()))
这意味着节点名称既不是“脚本”也不是“风格”。