如果元素存在于CsQuery中如何解包?

时间:2014-09-24 11:25:35

标签: c# jquery dom csquery

我使用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()这样的东西,但我还没有成功地使其发挥作用。任何想法?

1 个答案:

答案 0 :(得分:1)

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