【问题标题】:How to get nested div using Xpath?如何使用 Xpath 获取嵌套的 div?
【发布时间】:2017-01-20 18:27:26
【问题描述】:

我需要获取一个带有html文档的嵌套div,例如:

<div id="maindiv>
    <div id='firstdiv'>
    </div>  
    <div id="otherid">
        <div id="anotherdiv"><div id="divid"></div>
    </div>
</div>

我需要获取anotherdiv 的内容。我不知道maindiv 在主文档中的深度以及anotherdivmaindiv 中的深度。

目前我在做:

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(content);

var main = doc.GetElementbyId("maindiv").InnerHtml;
doc.LoadHtml(main);

var another = doc.GetElementbyId("anotherdiv");

这很好用。但是,有没有更好的方法来使用 XPath 获取所需的 div?

【问题讨论】:

  • /maindiv/otherid/text()

标签: c# html xpath html-agility-pack


【解决方案1】:

如果您想使用 x 路径提取子元素,请使用“/”,但您也可以通过“/*/”提取孙子,如果您不知道元素的深度,也可以使用“//”。

通过 id 提取元素使用[@id='&lt;id_you_are_looking_for'](按类提取的方法相同)

所以如果你不知道你的 div 有多“深”,请使用

//div[@id='anotherdiv']

甚至

//*[@id='anotherdiv']

提取具有选定 id 的任何元素。

id 应该是唯一的,所以应该足够了,但是如果你想确保另一个 div 在主 div 中,你可以使用

//div[@id='maindiv']//div[@id='anotherdiv]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多