【问题标题】:How to look for special/escape characters in XPATH 1.0如何在 XPATH 1.0 中查找特殊/转义字符
【发布时间】:2018-07-11 03:57:09
【问题描述】:

我正在使用一个名为 SonarQube 的开源代码审查工具。此应用程序允许根据您希望如何应用和审查这些规则以失败或通过来定制特定的编程约束。

我正在对 XML 路径中的格式化和查找错误/错误/漏洞进行代码审查。我在尝试捕捉这些路径中的特殊字符时遇到问题

例如,此 XPATH 1.0 表达式适用于在位置属性中查找“http”

//definitions/service/port/address[contains(@location,'http')]

这个表达式将返回真,因为它找到了http。然而,

//definitions/service/port/address[contains(@location,'http:')]

这个表达式不会返回 true,因为我认为字符 : 会导致某些内容被误解。

以下是我进行测试的一些示例代码。在这种情况下使用此字符或特殊字符是否有一些解决方法?

<definitions>
    <service >
       <port>
          <address location="http://example.com"/>
        </port>
     </service>
</definitions>

【问题讨论】:

    标签: xml xpath sonarqube xpath-1.0


    【解决方案1】:

    XPath 中字符串文字中的 : 字符没有什么特别之处。

    两个 XPath 表达式都将返回 XML 文档中显示的 address 元素。如果 SonarQube 的行为与此不同(可能但不太可能),那么这似乎是 SonarQube 的问题。

    在尝试提供最小 MCVE 时,您可能无意中减少了实际问题的重要方面。

    【讨论】:

    • 这就是我的想法,但它根本不起作用。仍然是学习 XPATH 的新手。这很可能是 SonarQube 的问题,所以我需要调查一下。将其标记为已回答。如果我找到解决方案,我会在这里回答。谢谢@kjughes
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2012-04-14
    • 2023-03-24
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    相关资源
    最近更新 更多