gpt4 book ai didi

c# - 如何使用 XmlWriter 编写带有十进制样式实体的 XML

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:12 25 4
gpt4 key购买 nike

出于兼容性原因,我想使用 C# XmlWriter 生成与另一个应用程序完全相同的 XML。

但是我无法控制 xml 实体的编写方式:XmlWriter 使用十六进制样式 (€) 而我想要十进制样式 (€)。

如何使用 XmlWriter 输出小数样式?

示例代码

XmlWriterSettings writerSettings = new XmlWriterSettings
{
Encoding = Encoding.GetEncoding("iso-8859-1"),
};

using (XmlWriter writer = XmlWriter.Create(stream, writerSettings))
{
writer.WriteElementString("test", "€");
}

输出

<?xml version="1.0" encoding="iso-8859-1"?><test>&#x20AC;</test>

最佳答案

你可以试试这个:

    using (XmlWriter writer = XmlWriter.Create(stream, writerSettings))
{
string s = AntiXssEncoder.XmlEncode("€");
writer.WriteStartElement("test");
writer.WriteRaw(s);
writer.WriteEndElement();
}

因为 AntiXssEncoder 使用十进制编码。您必须使用 WriteRaw 来执行此操作,因为 XmlEncode 已经对 xml 中的所有内容进行了编码。

不要做:

        string s = AntiXssEncoder.XmlEncode("€");
writer.WriteElementString("test", s);

否则您的输出会将 '&' 字符转义为 &#8364;

关于c# - 如何使用 XmlWriter 编写带有十进制样式实体的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33413337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com