if递归函数中的子句

时间:2015-03-27 06:06:30

标签: java node.js dom if-statement

我正在尝试构建一个遍历Dom树的函数,当且仅当节点名称不等于scriptstyle时。这是功能:

      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());

         }

但实际上,结果正好相反。它遍历所有节点,包括scriptstyle。我已经尝试将&&替换为||,但没有太大变化。

1 个答案:

答案 0 :(得分:1)

您的情况不起作用,因为所有节点名称都不是"脚本"是否"样式",所以所有节点名称都通过。

正确的条件是:

if(!("script".equals(node.getNodeName())||"style".equals(node.getLocalName()))

这意味着节点名称既不是"脚本"也不是"风格"。