猿问

字符串转义成XML

是否有任何C#函数可用于转义和取消转义字符串,可用于填充XML元素的内容?

我正在使用VSTS 2008 + C#+ .Net 3.0。

编辑1:我是串联简单和短期的XML文件,我不使用序列化,所以我需要手动明确转义XML字符,例如,我需要把a<b<foo></foo>,所以我需要逃避串a<b并付诸元素富。


慕桂英3389331
浏览 729回答 3
3回答

倚天杖

您说“我正在串联简单而简短的XML文件,并且我不使用序列化,所以我需要手动显式转义XML字符”。我强烈建议您不要用手做。使用XML API为您完成所有工作-读取原始文件,然后将这两个文件合并为一个文档(您可能需要使用XmlDocument.ImportNode),然后再次将其写出。您不想编写自己的XML解析器/格式器。序列化在这里有点无关紧要。如果您可以为我们提供一个简短而完整的示例来说明您要做什么,那么我们可能可以帮助您避免一开始就担心逃脱。原始答案您的意思还不清楚,但是通常XML API会为您完成此操作。您在一个节点中设置文本,它将自动转义任何需要的内容。例如:LINQ to XML示例:using System;using System.Xml.Linq;class Test{&nbsp; &nbsp; static void Main()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; XElement element = new XElement("tag",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Brackets & stuff <>");&nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(element);&nbsp; &nbsp; }}DOM示例:using System;using System.Xml;class Test{&nbsp; &nbsp; static void Main()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; XmlDocument doc = new XmlDocument();&nbsp; &nbsp; &nbsp; &nbsp; XmlElement element = doc.CreateElement("tag");&nbsp; &nbsp; &nbsp; &nbsp; element.InnerText = "Brackets & stuff <>";&nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(element.OuterXml);&nbsp; &nbsp; }}两个示例的输出:<tag>Brackets &amp; stuff &lt;&gt;</tag>当然,这是假设您要转义XML。如果不是,请发布更多详细信息。
随时随地看视频慕课网APP
我要回答