Я пытаюсь удалить некоторые теги HTML.У меня есть проект, где человек сохранил несколько поисков.Проблема в том, что ключевые слова были выделены.Например.
<p>Here is some <span class='highlite'>awesome</span> example.</p>
Ловкость Html превращает это в 3 узла.Текстовый узел, диапазон и текст снова.Я хотел бы создать один тег из этого.Чтобы это выглядело как
<p>Here is some awesome example.</p>
Я попытался получить все теги с подсветкой класса css, а затем
//Stip all retarded hilite tags
var hiliteTags = from tags in doc.DocumentNode.SelectNodes("//span[@class='hilite']")
select tags;
foreach (var tag in hiliteTags)
{
tag.ParentNode.RemoveChild(tag, true);
}
, но это привело к текстовому узлу, текстовому узлу, текстовому узлу.Я хотел один текстовый узел.Затем я попытался использовать
Node.InnerText += someVariable;
, но InnerText, несмотря на то, что документация говорит, что только для чтения.
Любые идеи о том, как это сделать?
Во-вторых, пока яспрашивая, есть ли способ избавиться от узлов, которые содержат только текст, и это \ r \ n.Я не заинтересован в этом вообще, и это только мешает и делает синтаксический анализ неудобным.Я хотел бы иметь возможность удалить их тоже.Например,
<tr>
<td>Foo</td>
<td>Bar</td>
</tr>
с использованием Html Agility становится
Node (tr)
Node (\r\n)
Node (td- Foo)
Node (\r\n)
Node (td - Bar)
Node (\r\n)
Node (tr)
Я пытаюсь выбрать эти узлы.Я пытался с Linq, и я пытался использовать XPath.Я просто не могу их удалить.