如何删除标签之间的换行符?

How to remove newline between tags?

假设我有这个代码:

        XmlNode counsel = doc.CreateElement("COUNSELS");
        XmlNode p = doc.CreateElement("p");
        counsel.AppendChild(p);
        XmlNode b = doc.CreateElement("b");
        p.AppendChild(b);
        b.InnerText = "Counsel:";

它会输出:

<COUNSELS>
  <p>
    <b>Counsel:</b>
  </p>
</COUNSELS>

我能做些什么来实现这个:

<COUNSELS>
  <p><b>Counsel:</b></p>
</COUNSELS>

如果我在写这篇文章时有任何错误,请纠正我 post。

因为 OP 确认正则表达式替换是可以接受的。我可以使用两个简单的替换。

using System.Text.RegularExpressions;

Regex reg1 = new Regex(@"<p>\s+", RegexOptions.Compiled);
Regex reg2 = new Regex(@"\s+</p>", RegexOptions.Compiled);

string xml = @"<COUNSELS>
  <p>
    <b>Counsel:</b>
  </p>
</COUNSELS>";
xml = reg1.Replace(xml, "<p>");
xml = reg2.Replace(xml, "</p>");
Console.WriteLine(xml);

输出

<COUNSELS>
  <p><b>Counsel:</b></p>
</COUNSELS>

您可以按照模式替换space周围的其他标签,或者使用更高级的一次性替换,都取决于您的实际需求和技能。