Разбирайте таблицы в документах HTML и извлекайте TR и TD. с пакетом гибкости HTML

html-agility-pack html-parsing vb.net

Вопрос

Я дал задание преобразовать старые данные в формат таблицы в новый формат.

Старые фиктивные данные:

<table>
<tr>
<td>Some text 1.</td>
<td>Some text 2.</td>
</tr>
..... //any number of TRs goes here
</table>

Проблема в том, что новые данные должны быть в таком формате:

Некоторые тексты 1. - Некоторые тексты 2. ....

Резюме того, что нужно сделать здесь:

Найти все TR в таблице. для каждого TR находят первый TD и объединяются со вторым TD, разделенным «-».

Я использую HTML Agility Pack с VB.Net.

Пожалуйста помоги.

Спасибо и приветствую.

Популярные ответы

Вы можете использовать Linq и HtmlAgilityPack, чтобы получить все td из узла таблицы, получить все InnerText этих узлов и создать новый TR / TD.

// tableNode is the <table> HtmlNode. If you know where is this table you can use XPath to find him.

Dim sb As New StringBuilder()
For Each childNode As HtmlNode In tableNode.DescendantNodes().Where(Function(n) n.Name = "td")
    sb.Append(String.Format("{0} - ", childNode.InnerText))
Next

tableNode.RemoveAllChildren()

Dim newTrNode As HtmlNode = tableNode.OwnerDocument.CreateElement("tr")
Dim newTdNode As HtmlNode = tableNode.OwnerDocument.CreateElement("td")

newTdNode.InnerHtml = sb.ToString()
newTrNode.AppendChild(newTdNode)

tableNode.AppendChild(newTrNode)

Я надеюсь, что это помогает



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему