过程& lt;br /比;在c#
本文关键字:br lt 过程 | 更新日期: 2023-09-27 18:03:28
我试图在c#中处理xml时在输出中包含空格。
text = text.Replace("<br />", " ");
text = HttpUtility.HtmlDecode(text);
System.Xml.XmlDocument doc = new XmlDocument();
doc.LoadXml(text);
StringBuilder sb = new StringBuilder();
foreach (XmlNode node in doc.DocumentElement.ChildNodes)
{
sb.Append(' ');
sb.AppendLine(node.InnerText);
}
<root><Paragraph>
<![CDATA[ Electrical Technologies]]><br /><![CDATA[Thomas Edison]]> </Paragraph></root>
我希望输出是Electrical TechnologiesSPACEThomas Edison
,但是输出是Electrical TechnologiesThomas Edison
。
谢谢R
由于HtmlDecode将<
和>
转换为<
和>
,您可以尝试用HTML空格字符
代替。例如
text = text.Replace("<br />", " ");
^
我建议使用Linq to Xml来解析Xml。下面是提取CDATA值的方法:
var xdoc = XDocument.Load(path_to_xml);
var values = xdoc.Root.Element("Paragraph").Nodes()
.OfType<XCData>()
.Select(x => x.Value.Trim());
如果你想获得这个xml文件中所有CDATA节点的值:
var values = xdoc.DescendantNodes().OfType<XCData>().Select(x => x.Value.Trim());
这个查询返回两个条目:
[ "Electrical Technologies", "Thomas Edison" ]
您可以按照自己的意愿格式化输出。例如,在一个字符串中用空格连接值:
var result = String.Join(" ", values);