XPath:我可以通过部分名称匹配来收集元素吗?

时间:2017-03-21 12:16:16

标签: xml xpath

这类似于How to get list of elements by partial class name?,但我喜欢使用XML XPath:

考虑这个XML元素的变量列表:

<root>
    <Other>...</Other>
    <Item.1>...</Item.1>
    <Item.2>...</Item.2>
    <Item.3>...</Item.3>
    <Something>...</Something>

我想构建一个包含所有Item.*元素的Xpath。

我不能简单地得到所有父母的孩子,因为我不想包括许多其他兄弟姐妹,我也找不到将它们排除在外的规则(很难预测到什么)其他都可以在那里。)

然而,有一种我可以依赖的行为:Item。*元素总是以Item.1开头,并且都是彼此跟随的,其间没有其他元素。

Xpath有可能吗?

1 个答案:

答案 0 :(得分:3)

您可以使用以下XPath表达式来获取名称以Item开头的元素:

//*[starts-with(local-name(), "Item")]