如何在动态类名称中使用Xpath Wildcard

时间:2013-11-29 21:23:19

标签: php xpath

我对Xpath很新,也许有人可以提供帮助。

My Expression看起来像这样:

.//*[@id='existingContractsTable:0:createNewDeviceUpgradeForm:createNewDeviceUpgradeSpan']

如果只有1个表,这个工作正常。

问题是“有时”有多个表

我可以打电话:

.//*[@id='existingContractsTable:1:createNewDeviceUpgradeForm:createNewDeviceUpgradeSpan']
.//*[@id='existingContractsTable:2:createNewDeviceUpgradeForm:createNewDeviceUpgradeSpan']

我可以使用任何通配符吗?

1 个答案:

答案 0 :(得分:1)

我不会想到这样的通配符,但你确实有其他一些创意选择:

  1. 使用translate将所有数字转换为空格,然后使用normalize-space处理表格10及以后的案例。

  2. 使用starts-with and ends-with

  3. 使用此组合:substring-beforestarts-with

    .//*[starts-with(substring-before(@id,':createNewDeviceUpgradeForm:createNewDeviceUpgradeSpan'), 'existingContractsTable:')]