2011-01-19 115 views

回答

2

首先,您的标记似乎已损坏。一旦你解决这个问题是这样的:

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

如果你使用这个XPath将只得到第一个三个节点://div[contains(@id, 'foo')]

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

你尝试类似...

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

着眼于CSS3选择器(例如,看到这个Web page)。您可以使用以下的选择:

div[id*="foo"] 

,你会选择所有包含在ID字符串“foo”的div。

不过,如果你希望只以“富”开头的ID的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开始和ID的其余部分由一个连字符分隔的div(因此,仅前三)。

而且,如果你重新排列你的div的ID如下(即,通过将字符串 “foo” 的ID结束):

<div id="bootoofoo"><div> 
<div id="woohoofoo"><div> 
<div id="doowoofoo"><div> 
<div id="bootoosoo"><div> 

你可以使用:

div[id$="foo"] 

选择所有以id结尾的div(即只有前三个)。

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

相关问题