【问题标题】:CsQuery - find element with concrete nameCsQuery - 查找具有具体名称的元素
【发布时间】:2016-09-17 20:56:47
【问题描述】:

我必须像这样解析 html:

<div class="navig-nav">
  <ul class="navig" id="navigmenu">
    <li class="navig-expanded navig-selected">Company</li>
    <li class="navig-sub"><div>Summary</div></li>
    <li class="navig-sub"><a href="any_url_1">Some</a></li>
    <li class="navig-sub"><a href="any_url_2">Interesting</a></li>
    <li class="navig-sub"><a href="any_url_3">Information</a></li>
    <li class="navig-item"><a href="any_url_4"><div>From</div></a></li>
    <li class="navig-item"><a href="any_url_5"><div>Web</div></a></li>
    <li class="navig-item"><a href="any_url_6"><div>Page</div></a></li>
  </ul>
</div>

在此菜单中(如您所见),所有班级都有多个孩子。如果我只有名称“Interesting”,如何使用 csQuery 获取“any_url_2”?

【问题讨论】:

    标签: c# csquery


    【解决方案1】:

    这是:

    dom[".navig-sub"].Find("a:contains('Interesting')")
    

    一个好的答案?

    【讨论】:

      【解决方案2】:

      怎么样

      dom["a:contains('Interesting')"];
      

      这里有一个更完整的查询:

      CQ dom = "your html here";
      var result = dom["a[href='any_url_2']:contains('Interesting')"];
      if (result.Length == 1)
      {
          Console.WriteLine(result[0].Attributes["href"]);
      }
      

      【讨论】:

      • Html 可能会更长。而且我必须确保我找到了正确的href“any_url_2”,而不是在里面找到一些带有“Interesting”字样的文本
      • 好的,谢谢。但是,如果我不知道确切的 url 并想找到它,我该怎么办?只需使用简单的第一个答案?
      • 您能准确描述一下您知道什么以及您正在寻找什么吗?在您最初的问题中,您说您只知道字符串“Interesting”,并且您正在寻找包含它的 A 的 URL。
      • 你是对的!我认为第一个简单的答案是正确的,因为它只找到 元素。所以它有效,非常感谢你)
      • 如果我知道确切的类名怎么办?如果我必须确保获得正确的 href,我该怎么办?
      猜你喜欢
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多