Php 如何选择id包含特定子字符串的所有元素?

Php 如何选择id包含特定子字符串的所有元素?,php,xpath,Php,Xpath,我想选择id包含特定子字符串的所有元素。例如: <div id="foobootoo"><div> <div id="foowoohoo"><div> <div id="foodoowoo"><div> <div id="soobootoo"><div> 我想获取id中包含foo的元素。首先,您的标记似乎已损坏。一旦你像这样修复它: <div id="foobootoo"></di

我想选择id包含特定子字符串的所有元素。例如:

<div id="foobootoo"><div>
<div id="foowoohoo"><div>
<div id="foodoowoo"><div>
<div id="soobootoo"><div>

我想获取id中包含foo的元素。

首先,您的标记似乎已损坏。一旦你像这样修复它:

<div id="foobootoo"></div>
<div id="foowoohoo"></div>
<div id="foodoowoo"></div>
<div id="soobootoo"></div>

如果使用此xpath,则只会得到前三个节点://div[contains@id,'foo'].

首先,您的标记似乎已损坏。一旦你像这样修复它:

<div id="foobootoo"></div>
<div id="foowoohoo"></div>
<div id="foodoowoo"></div>
<div id="soobootoo"></div>

如果使用此xpath,则只会得到前三个节点://div[contains@id,'foo'].

如果要选择多个元素,只需为这些元素指定相同的类即可

<div id="foobootoo" class="foo"><div>
<div id="foowoohoo" class="foo"><div>
<div id="foodoowoo" class="foo"><div>
<div id="soobootoo" class="foo"><div>

如果要选择多个元素,只需为这些元素指定相同的类即可

<div id="foobootoo" class="foo"><div>
<div id="foowoohoo" class="foo"><div>
<div id="foodoowoo" class="foo"><div>
<div id="soobootoo" class="foo"><div>

你有没有试过像

$result = $xml->xpath("div[contains(@id,'foo')]");

你有没有试过像

$result = $xml->xpath("div[contains(@id,'foo')]");

查看CSS3选择器,例如,请参见此。您可以使用以下选择器:

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>
要选择id以foo开头的所有div,并且id的其余部分用连字符分隔,因此,只有前三个div

此外,如果按如下方式重新排列div的id,即将子字符串foo放在id的末尾:

<div id="bootoofoo"><div>
<div id="woohoofoo"><div>
<div id="doowoofoo"><div>
<div id="bootoosoo"><div>
选择id以foo结尾的所有div,即仅前三个div


值得一提的是,还有其他选择器,但它们似乎符合您的需要。

查看CSS3选择器,例如,请参见此。您可以使用以下选择器:

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>
要选择id以foo开头的所有div,并且id的其余部分用连字符分隔,因此,只有前三个div

此外,如果按如下方式重新排列div的id,即将子字符串foo放在id的末尾:

<div id="bootoofoo"><div>
<div id="woohoofoo"><div>
<div id="doowoofoo"><div>
<div id="bootoosoo"><div>
选择id以foo结尾的所有div,即仅前三个div

值得一提的是,还有其他选择器,但它们似乎是符合您需求的选择器