【问题标题】:HtmlAgilityPack select subnodes valueHtmlAgilityPack 选择子节点值
【发布时间】:2015-08-29 06:13:39
【问题描述】:

HTML 字符串包含确切的字符串

<div class="XKa d-k-l"><span class="VTb d-k-l"></span></div><div class="pha d-k-l"><div ><div>Hello World </div>

我想从 div 中检索 Hello World。

我正在使用HtmlAgilityPack

var item = 
     HTMLContent.DocumentNode
                .SelectSingleNode("//div[@class='XKa d-k-l']//span[@class='VTb d-k-l']//div[@class='pha d-k-l']")
                .InnerHtml;

异常:对象引用未设置为对象的实例。无法弄清楚正确的语法感谢您的帮助

【问题讨论】:

    标签: c# xpath html-agility-pack


    【解决方案1】:

    div[@class='pha d-k-l'] 不是div[@class='XKa d-k-l'] 的后代,关系是siblings 而不是ancestor-descendant。您可以尝试像这样使用following-sibling 轴:

    //div[@class='XKa d-k-l']/following-sibling::div[@class='pha d-k-l']
    

    working demo example

    var html = @"<div class='XKa d-k-l'><span class='VTb d-k-l'></span></div><div class='pha d-k-l'><div><div>Hello World </div></div></div>";
    var HTMLContent = new HtmlDocument();
    HTMLContent.LoadHtml(html);
    var item = HTMLContent.DocumentNode
                .SelectSingleNode("//div[@class='XKa d-k-l']/following-sibling::div[@class='pha d-k-l']").InnerHtml;
    Console.WriteLine(item);
    

    输出:

    <div><div>Hello World </div></div>
    

    更新:

    您可以像这样添加span 检查:

    //div[@class='XKa d-k-l'][span/@class='VTb d-k-l']/following-sibling::div[@class='pha d-k-l']
    

    【讨论】:

    • 感谢您的帮助。我还需要添加跨度 因为在 html 字符串中它具有例如 &lt;div class="XKa d-k-l"&gt;&lt;span class="ZSb d-k-l"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="pha d-k-l"&gt; 需要确保在 div 之后有一个特定的跨度我尝试这样做:.SelectSingleNode("//div[@class='XKa d-k-l']//span[@class='VTb d-k-l']/following-sibling::div[@class='pha d-k-l']").InnerHtml 但是它不起作用
    • 我也试过这个.SelectSingleNode("//span[@class='VTb d-k-l']/following-sibling::div[@class='pha d-k-l']").InnerHtml 不应该这样工作吗?
    • 否,因为目标 div 不是 span非兄弟。相反,目标divdiv 的兄弟,span 的父级
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多