如果一个元素与CsQuery一起存在,如何打开它

本文关键字:存在 一起 何打开 CsQuery 元素 一个 如果 | 更新日期: 2023-09-27 18:24:08

我正在使用CsQuery读取HTML元素的值。

事先,我不知道<a>元素是否包含<font>元素。

有没有一种方法可以读取锚的InnerText,而不管它是否包含font元素?

场景1:字体元素内的文本

 <div class="link">
     <a href="http://www.example.com/1">
          <font>Foo</font>
     </a>
</div>

场景2:没有字体元素的文本

<div class="link">
     <a href="http://www.example.com/2">
         Foo
     </a>
 </div>

我有以下工作解决方案:

 var dom = CQ.CreateFromUrl("http://www.myurl.com");
 var a = new CQ(dom.Select("div.link a").InnerHTML);
 var font = a.Select("font");
 var myValue = a.Count() > 0 ? font[0].InnerText : a[0].InnerText;

但它有点乱,我宁愿总是删除字体元素(如果存在的话),这样我就可以立即选择锚值。类似Contents()UnWrap()的组合,但我还没有成功地使其工作。有人有想法吗?

如果一个元素与CsQuery一起存在,如何打开它

var dom = CQ.CreateFromUrl("http://www.myurl.com");
string result = dom[".link a"].Text();