idに特定の部分文字列が含まれるすべての要素を選択したいとします。たとえば、次のようになります。idに特定の部分文字列が含まれるすべての要素を選択するにはどうすればよいですか?
<div id="foobootoo"><div>
<div id="foowoohoo"><div>
<div id="foodoowoo"><div>
<div id="soobootoo"><div>
idにはfoo
の要素が必要です。
idに特定の部分文字列が含まれるすべての要素を選択したいとします。たとえば、次のようになります。idに特定の部分文字列が含まれるすべての要素を選択するにはどうすればよいですか?
<div id="foobootoo"><div>
<div id="foowoohoo"><div>
<div id="foodoowoo"><div>
<div id="soobootoo"><div>
idにはfoo
の要素が必要です。
まず、マークアップが壊れているようです。あなたはこのようにそれを修正したら://div[contains(@id, 'foo')]
:
<div id="foobootoo"></div>
<div id="foowoohoo"></div>
<div id="foodoowoo"></div>
<div id="soobootoo"></div>
あなたはこのXPathを使用する場合は、最初の3つのノードを取得します。
複数の要素を選択する場合は、要素に同じクラスを指定します。
<div id="foobootoo" class="foo"><div>
<div id="foowoohoo" class="foo"><div>
<div id="foodoowoo" class="foo"><div>
<div id="soobootoo" class="foo"><div>
ます(例えば、このWeb pageを参照してください)
$result = $xml->xpath("div[contains(@id,'foo')]");
はCSS3セレクターで見える...のような何かを試してみました。
div[id*="foo"]
、あなたはIDにストリング「foo」を含んでいるすべてのdivを選択します:あなたは、次のセレクタを使用することができます。しかし
、あなたは「FOO」で始まるIDを持つ唯一のdivをしたい場合は、次のようにあなたのdiv要素のIDを並べ替える場合は
div[id^="foo"]
を使用します。
<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で始まり、残りのidがハイフンで区切られているdivをすべて選択するようにします(したがって、最初の3つだけ)。
また、次のようにあなたのdiv要素のIDを再配置した場合(つまり、IDの末尾部分文字列 "foo" を置くことによって):
あなたが使用することができます<div id="bootoofoo"><div>
<div id="woohoofoo"><div>
<div id="doowoofoo"><div>
<div id="bootoosoo"><div>
:
div[id$="foo"]
は、idがfooで終わるすべてのdivを選択します(最初の3つだけです)。
他のセレクタがあることに言及する価値はありますが、これらはあなたのニーズに合ったものと思われます。