0

我的 HTML 如下所示

<h4>
<span>Cat</span>
<span>Dog</span>
<a href="xxx" class="telcat">Potatoes</a>
</h4>

我正在尝试从上面生成以下字符串,它只是由逗号连接的子元素内部文本

Cat,Dog,Potatoes

我试过类似的东西

 string x = String.Join(",", htmldoc.DocumentNode.SelectNodes("//h4").Elements().Select(el => el.InnerText).ToList());

但是我得到了输出,我得到的字符串看起来像

,Cat,
,Dog,
,Potatoes,
4

1 回答 1

1

那是因为 Html 中有没有文本的 TextNodes。解决这个问题相当容易,您只需要过滤空文本。

像这样:

 string x = String.Join(",", doc.DocumentNode
    .SelectNodes("//h4").Elements()
    .Select(el => el.InnerText)
    .Where(text => !string.IsNullOrWhiteSpace(text)));

如果您想为整个页面提供类似的内容,我在这里发布了类似的内容。

于 2013-09-19T12:58:20.273 回答