InnerText将<br/>替换为空格

时间:2019-04-08 08:17:16

标签: c# html-agility-pack

我一直试图在HtmlAgilityPack中找到一个内置的解决方案/设置。

当父节点中有<br>时,我遇到了一些问题。其他节点也一样,但是我使用<br>来解决这个问题。参见下面的示例。

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<p>This is a<br>test</p>");

var text = doc.DocumentNode.SelectNodes("//p");

foreach (var i in text)
{
  Console.WriteLine(i.InnerText);
}

这将产生以下结果

This is atest

我正在寻找一种解决方案,

This is a test

是否有一个设置可以用来将<br>节点替换为InnerText属性中的空格,还是我被迫在加载文本之前对文本执行Replace("<br>"," ")变成HtmlDocument

2 个答案:

答案 0 :(得分:1)

您是否尝试过此方法,我认为在
之前/之后留出空间应该可以为您带来预期的结果。

<p>This is a <br> test</p>

答案 1 :(得分:0)

我相信您可以做这样的事情。

foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//br"))
    node.ParentNode.ReplaceChild(doc.CreateTextNode(" "), node);

它选择<br>节点,并将其替换为包含空格字符的文本节点。如果要保留换行符,甚至可以使用换行符。