我们可以在我的xpath查询中输入整数,如“A / B / 123”。如果没有那么你可以告诉我有没有办法把整数放在xpath
答案 0 :(得分:2)
XML元素名称的第一个字符仅限于以下集合
":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
见http://www.w3.org/TR/REC-xml/#NT-NameStartChar。这不包括数字。
为什么不在标记中使用属性并在XPath查询中搜索该属性,例如
<A>
<B>
<C id="123" />
</B>
</A>
A/B/C[@id="123"]
答案 1 :(得分:1)
我们可以在我的xpath查询中输入整数,例如“A / B / 123”。
答案为否定,因为在位置步骤/123
中,字符串123
既不是节点测试,也不是节点名称。
要记住的简单规则是在XML中,名称必须以字母(或下划线)开头,其余字符可以是字母,下划线或数字。这些字母不仅限于拉丁字母(可以来自希腊语,或西里尔语,或......字母)
因此,以下语法都是正确的:
/A/B/C123
/A/B/C_123
/A/B/_123
/π/Σ/φ_123
/А/Б/Щ_123
/A/B/C[. = 123]
/A/B/C[. = '123']
/A/B/C[text() = 123]
/A/B/C[text() = '123']
/A/B/C[@someAttribName = 123]
/A/B/C[@someAttribName = '123']
答案 2 :(得分:1)
在XPath 2.0中,表达式X / Y / 123是合法的,但它没有做任何非常有用的事情:它返回一个由与X / Y中的元素一样多的123个实例组成的序列。
正如其他人的回应:你想要实现什么目标?