java - 递归函数中的 If 子句

标签 java node.js dom if-statement

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

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

         }

但在实践中,结果恰恰相反。它会遍历所有 Node ,包括 scriptstyle。我已经尝试用 || 替换 && ,但没有发生太大变化。

最佳答案

您的条件不起作用,因为所有 Node 名称要么不是“脚本”,要么不是“样式”,因此所有 Node 名称都通过。

正确的条件是:

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

这意味着 Node 名称既不是“script”也不是“style”。

关于java - 递归函数中的 If 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29294319/

相关文章:

java - 如何给Listview添加一个id

java - 需要帮助才能使 Spring MVC 项目与 IntelliJ IDEA 一起使用

javascript - 使用某种循环添加到字符串中

node.js - 如何在每次 pm2-restart 之前运行 "npm install"?

javascript - 无法在 IE8 中获取未定义或空引用的属性 'parentNode'

javascript - 为什么不能像 html/javascript 中的 document.body.div[0] 一样访问 body 的第一个 div 元素

java - 我如何在表单 selenium 上上传文件

java - 单元测试 App 引擎 - Eclipse - Maven

javascript - 音频传输android和node-webkit

javascript - 如何使用基本 JavaScript 将数组中的数据插入 HTML