假设我有以下XML。
<Table>
<Row1>
<Name>My Name</Name>
<LastName>LastName</LastName>
</Row1>
<Row2>
<Name>My Name2</Name>
<LastName>LastName2</LastName>
</Row2>
</Table>
我明白这是糟糕的布局,我不能不幸地改变它。所以,我想找到包含Nodes
'Row'
我试过这个表达但不幸的是它看起来似乎没有用:
//Table//*[contains(.,'Row')]
知道我该怎么做吗?
答案 0 :(得分:3)
*[contains(.,'Row')]
检查值包含子字符串Row
的元素 - 如果您想要 name 包含该字符串的元素,则需要
*[contains(name(),'Row')]
或者如果你想更具体
*[starts-with(local-name(),'Row')]
仅查找Row1
,Row2
,RowFoo
等,但不是AnotherRow
。
答案 1 :(得分:1)
我会用
//*[starts-with(local-name(),'Row')]
像伊恩建议的那样。
或更好
//Table/*[starts-with(local-name(),'Row')]