2013-09-19 2 views
0

Мой HTML выглядит следующимстрока присоединиться к InnerText из HTML ChildNodes

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

я пытаюсь произвести следующую строку из вышеизложенного, который просто дочерние элементы InnerText соединены запятой

Cat,Dog,Potatoes 

я попытался Somthing как

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

однако я получаю ищет выход, в Strin g i get выглядит как

,Cat, 
,Dog, 
,Potatoes, 

ответ

1

Это потому, что в Html есть текст, который не имеет текста. Исправить это довольно легко, вам просто нужно отфильтровать пустой текст.

Как так:

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

Если вы хотите что-то подобное для всей страницы, я отвечал что-то похож here.

Смежные вопросы