我正在使用一个名为SonarQube的开源代码查看工具。此应用程序允许根据您希望如何应用和检查这些规则以失败或通过的方式来定制特定的编程约束。
我正在进行代码审查,以设置格式并查找XML路径中的错误/错误/漏洞。我在尝试在这些路径中捕获特殊字符时遇到困难
例如,此XPATH 1.0表达式可用于在location属性中查找“ http”
//definitions/service/port/address[contains(@location,'http')]
此表达式将返回true,因为它找到了 http 。但是,
//definitions/service/port/address[contains(@location,'http:')]
此表达式不会返回true,因为我相信字符:会导致某些错误的解释。
下面是一些我进行测试的示例代码。在这种情况下可以使用一些特殊字符吗?
<definitions>
<service >
<port>
<address location="http://example.com"/>
</port>
</service>
</definitions>
答案 0 :(得分:1)
XPath中的字符串文字中的:
字符没有什么特别的。
两个XPath表达式都将返回XML文档中显示的address
元素。如果SonarQube的行为与此不同(可能但不太可能),则SonarQube似乎是一个问题。
在尝试提供最小的MCVE时,您可能无意中减少了实际问题的重要方面。