【问题标题】:Getting the value of the 'href' inside of a div in HTMLAgilityPack in C#在 C# 中的 HTMLAgilityPack 中获取 div 内的“href”的值
【发布时间】:2015-07-03 01:39:49
【问题描述】:

我正在尝试获取“href”的值。代码是这样的:

          <div class="s_newsbox" style="font-size:12px; vertical-align:middle; overflow: hidden; float:left; margin:10px; margin-bottom:15px; height: 270px; width:280px; border-radius:6px; position:relative; text-align:center; padding:0px">
            <div style="background-color:#292929; background-color:rgba(0,0,0,0.8); padding:5px; padding-left:2px; padding-right:10px; width:100%; position:absolute; top:0; left:0;"><b>Samsung nx30 + zoom kit 18/55</b>
            </div>
            <a href="vendo.php?t=1395911">
              <img style="width:100%; height:100%" src="http://img1.juzaphoto.com/shared_files/uploads_mercatino/sell_1395911_small.jpg" alt="">
              <br></a>
            <div style="line-height:150%; background-color:#292929; background-color:rgba(0,0,0,0.8); padding:5px; position:absolute; bottom:0; left:0; margin-left:auto; width:100%; text-align:left">Venditore: 
              <a href="me.php?l=it&amp;p=45923"><b>Pierobob</b></a>  
              <br> Prezzo: <b>350 &euro;</b>  
              <br> Zona: <b>Bologna</b>  
              <br> 
              <a href="vendo.php?t=1395911">Leggi annuncio</a> (8 visite)
              <br>
            </div>
          </div>

我想要做的是:

           var list = page.DocumentNode.SelectNodes("//div[@class='s_newsbox']");
           foreach (var obj in list)
            {
              var url = obj.SelectSingleNode(".//a").Attributes["href"].Value;

我想获取值 'vendo.php?t=1395911' 但我得到了另一行的 href 值,该行没有类 's_newsbox' 的父 div

我做错了什么?

谢谢!

【问题讨论】:

  • 变量obj是什么?
  • 该死,我的错。以为我复制了所有内容,它来自:foreach (var obj in list)

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


【解决方案1】:

只要您不需要 s_newsbox div 中的任何其他节点,您就可以使用更准确的 xpath 过滤有问题的对象。

       var list = page.DocumentNode.SelectNodes("//div[@class='s_newsbox']/a[string-length(@href)>0]");
       foreach (var obj in list)
        {
          var url = obj.SelectSingleNode(".").Attributes["href"].Value;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 2017-06-23
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多