2014-09-24 30 views
0

我使用CsQuery来读取HTML元素的值。如何使用CsQuery解开元素?

提前,我不知道<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
var dom = CQ.CreateFromUrl("http://www.myurl.com"); 
string result = dom[".link a"].Text(); 
+0

Thx,没意识到它是*那*简单:) – 2014-10-01 12:14:05