我正在使用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()
,但我没有成功使它工作。任何人的想法?