简化XPath表达式

时间:2011-10-06 14:21:00

标签: xml xpath

是否有更好的方法来测试属性的不存在,或者它的值是0还是空白?

目前我必须写

//Comment[not(@ID) or @ID=0 or @ID='']

但如果遗忘一个条件,那么更简单,更不易出错的事情将是理想的。

编辑:以下所有内容也有效

//Comment[not(not(@ID * 1) = 0)]

//Comment[not(@ID * 1 > 0)]

2 个答案:

答案 0 :(得分:1)

test="(number(@ID))"

可能会做你想要的。当属性不存在时,它将返回false,空白或“0”,但对于某些其他情况,它也将返回false,例如ID="not-a-number"。您需要更精确地指定您的要求,例如,您希望如何处理ID =“00”或ID =“0”(带空格)。

答案 1 :(得分:0)

“有更好的方式......”

不。