为了账号安全,请及时绑定邮箱和手机立即绑定

字符串转义成XML

字符串转义成XML

慕桂英3389331 2019-11-28 12:56:44
是否有任何C#函数可用于转义和取消转义字符串,可用于填充XML元素的内容?我正在使用VSTS 2008 + C#+ .Net 3.0。编辑1:我是串联简单和短期的XML文件,我不使用序列化,所以我需要手动明确转义XML字符,例如,我需要把a<b成<foo></foo>,所以我需要逃避串a<b并付诸元素富。
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

您说“我正在串联简单而简短的XML文件,并且我不使用序列化,所以我需要手动显式转义XML字符”。


我强烈建议您不要用手做。使用XML API为您完成所有工作-读取原始文件,然后将这两个文件合并为一个文档(您可能需要使用XmlDocument.ImportNode),然后再次将其写出。您不想编写自己的XML解析器/格式器。序列化在这里有点无关紧要。


如果您可以为我们提供一个简短而完整的示例来说明您要做什么,那么我们可能可以帮助您避免一开始就担心逃脱。


原始答案


您的意思还不清楚,但是通常XML API会为您完成此操作。您在一个节点中设置文本,它将自动转义任何需要的内容。例如:


LINQ to XML示例:


using System;

using System.Xml.Linq;


class Test

{

    static void Main()

    {

        XElement element = new XElement("tag",

                                        "Brackets & stuff <>");


        Console.WriteLine(element);

    }

}

DOM示例:


using System;

using System.Xml;


class Test

{

    static void Main()

    {

        XmlDocument doc = new XmlDocument();

        XmlElement element = doc.CreateElement("tag");

        element.InnerText = "Brackets & stuff <>";

        Console.WriteLine(element.OuterXml);

    }

}

两个示例的输出:


<tag>Brackets &amp; stuff &lt;&gt;</tag>

当然,这是假设您要转义XML。如果不是,请发布更多详细信息。


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 727 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信