我想选择id包含特定子字符串的所有元素。例如:
<div id="foobootoo"><div>
<div id="foowoohoo"><div>
<div id="foodoowoo"><div>
<div id="soobootoo"><div>
我想获取id中包含foo
的元素。
答案 0 :(得分:2)
首先,你的标记似乎破了。一旦你修复它:
<div id="foobootoo"></div>
<div id="foowoohoo"></div>
<div id="foodoowoo"></div>
<div id="soobootoo"></div>
如果使用此xpath,则只能获得前三个节点://div[contains(@id, 'foo')]
。
答案 1 :(得分:1)
如果要选择多个元素,只需为元素指定相同的类。
<div id="foobootoo" class="foo"><div>
<div id="foowoohoo" class="foo"><div>
<div id="foodoowoo" class="foo"><div>
<div id="soobootoo" class="foo"><div>
答案 2 :(得分:1)
你有没有试过像......
$result = $xml->xpath("div[contains(@id,'foo')]");
答案 3 :(得分:0)
查看CSS3选择器(例如,请参阅此Web page)。您可以使用以下选择器:
div[id*="foo"]
您将在id中选择包含子字符串“foo”的所有div。
但是,如果您只想要id为以“foo”开头的div,请使用
div[id^="foo"]
如果您按如下方式重新排列div的ID:
<div id="foo-bootoo"><div>
<div id="foo-woohoo"><div>
<div id="foo-doowoo"><div>
<div id="soo-bootoo"><div>
你可以使用:
div[id|="foo"]
选择id以foo开头的所有div,其余的id用连字符分隔(因此,只有前三个)。
此外,如果您按如下方式重新排列div的id(即,通过将子字符串“foo”放在id的末尾):
<div id="bootoofoo"><div>
<div id="woohoofoo"><div>
<div id="doowoofoo"><div>
<div id="bootoosoo"><div>
你可以使用:
div[id$="foo"]
选择id以foo结尾的所有div(即只有前三个)。
值得一提的是,还有其他选择器,但这些选择器似乎符合您的需求。