2013-02-06 47 views
0

我的代码看起来像这样选择先行sibilings元素包含子中的XPath

<div id="content"> 
<p>text</p> 
<p>text1</p> 
<p>text3</p> 

<p><iframe></iframe></p> 

<p>text4</p> 
<p>text5</p> 
</div> 

我需要的是包含子“的iframe”,“P”之前选择所有的“P”的元素,我试着像这样

//div[@id='content']//p[iframe]/preceding-sibiling::p

,但没有运气。

我在这里呆了几天,所以任何帮助都会很棒。

回答

0

您的XPath逻辑实际上很好!你只是有几个错别字出现。

//div[@id='content']/p[iframe]/preceding-sibiling::p

你也不需要在div块后额外/。下面是完整的工作的XPath:

//div[@id='content']/p[iframe]/preceding-sibling::p 
+0

thanx的答复,我有固定的错字,但由于某种原因,我仍然无法得到它的工作坚持,可能是一些其他的问题,大汉只是选择。我写的代码只是整个代码的证明,但我认为我使用的是错误的方法。我实际上有多个与在这个div中的iframe,我试图追加'p [iframe和position()= 2]',但这是行不通的。 Maby我会在稍后发布大部分代码 –