我們需要HTML註釋之間讀取節點:的XPath選擇多次
<html>
<!-- comment 1 -->
<div>some text</div>
<div><p>Some more elements</p></div>
<!-- end content -->
<!-- comment 2 -->
<div>some text</div>
<div><p>Some more elements</p>
<!-- end content -->
</div>
</html>
我嘗試使用下面的XPath:
//*[preceding-sibling::comment()[contains(., 'comment 1')]][following-sibling::comment()[contains(., 'end content')]]
它工作正常的第一個評論即註釋1,但不針對第二條評論 以下是XPath的相同內容
//*[preceding-sibling::comment()[contains(., 'comment 2')]][following-sibling::comment()[contains(., 'end content')]]
I我使用HTML敏捷性包與下面的代碼:
var nodes = document.SelectNodes("//*[preceding-sibling::comment()[contains(., 'comment 1')]][following-sibling::comment()[contains(., 'InstanceEndEditable')]]");
string allHtml = nodes[0].OuterHtml;
如果我改變「註釋1」在上面的代碼「註釋2」,那麼它是不會放棄任何結果。
請注意,您的HTML Agility Pack示例代碼中的XPath包含一個額外的約束('[contains(。,'InstanceEndEditable')]]'),您可能打算編輯 - 它與您的例。 – kjhughes 2014-10-16 13:25:00
我回滾了源代碼的更改,因爲當您以該方式重新排列源代碼時,它完全更改了原始問題。完成後請隨時提出一個新問題。謝謝。 – kjhughes 2014-10-16 13:35:04