如果XPath查詢導致列出不同名稱的屬性,那麼您是否可以追加到該查詢中以僅選擇值並省略屬性名稱等? (對於便攜性,我的目標的XPath 1.0)如何從不同名稱的屬性列表中選擇值?
的人示例XML與地址:
<people>
<person workaddr="foo" homeaddr="bar"/>
<person workaddr="baz" homeaddr="foo"/>
<person workaddr="qux" homeaddr="zoo"/>
</people>
我尋找任何方式與地址foo
有關的任何人的所有地址XPath查詢:
//person[@*='foo']/@*['addr' = substring(name(.), string-length(name(.)) - string-length('addr') +1) and . != '']
(我知道這將任何人任何屬性,它的值是foo
,不只是foo
地址01匹配,因爲在實際情況下除工作和家庭地址之外還有其他屬性。如果你碰巧知道如何改進我的查詢來限制的屬性值檢查,後綴名爲addr
屬性,這將是一個巨大的獎金)
我查詢的結果至少根據http://www.freeformatter.com/xpath-tester.html#ad-output是:
Attribute='homeaddr=bar'
Attribute='workaddr=foo'
Attribute='homeaddr=foo'
Attribute='workaddr=baz'
我想只是值:bar foo foo baz
甚至bar foo baz
提前感謝!
嘗試添加'字符串()'得到公正價值觀:'//人[@ * = '富']/@ * [ 'addr'= substring(name(。),string-length(name(。)) - string-length('addr')+1)和。 !='']/string()' – Andersson
'string()'是一個函數,而不是節點測試。因此,在路徑步驟中調用'string()'在XPath 1.0中不起作用 – har07