2017-05-30 46 views
1

考慮下面的XML特定類型的:如何選擇一個元素只有在接下來的元素是利用引入nokogiri

<w:p> 
    <w:pPr> 
     <w:lang w:val="en-CA"/> 
    </w:pPr> 
    <w:ins> 
     <w:t>sections</w:t> 
    </w:ins> 
    <w:pPr> 
     <w:lang w:val="en-CA"/> 
    </w:pPr> 
    <w:r> 
    <w:t>I am</w:t> 
    </w:r> 
</w:p> 

我想選擇後跟要麼w:insw:del元素w:pPr元素。

我想:

doc.xpath("w:pPr[following-sibling::w:ins[1] or following-sibling::w:del[1]]") 

仍然返回第二w:pPr元件,其後面是w:r元素,所以它不是我要找的。

我該怎麼做?

回答

1

嘗試此XPath表達式:

//w:pPr[following-sibling::*[position()=1][name()='w:del' or name()='w:ins']] 
+0

我嘗試過了,其結果是,它仍然返回之後是瓦特的PPR元件:R元素 – chell

+0

對不起,我提出了錯字。這工作。我怎樣才能將這個應用到一個段落。如果我有段落,paragraph_1.xpath(...)例如? – chell

+0

我不確定我是否正確理解你的問題......如果你只想要第一次出現,那麼只需添加'[1]'謂詞 – Andersson

相關問題