2011-01-19 9 views

答えて

2

まず、マークアップが壊れているようです。あなたはこのようにそれを修正したら://div[contains(@id, 'foo')]

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

あなたはこのXPathを使用する場合は、最初の3つのノードを取得します。

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> 
1

ます(例えば、このWeb pageを参照してください)

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

は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つだけです)。

他のセレクタがあることに言及する価値はありますが、これらはあなたのニーズに合ったものと思われます。

関連する問題