我想在带有相应ISO代码的XML文本文件中编写拉丁口音。
例如,é
被文件上的é
替换。
我的问题是我的第一个&由 Xml.Linq 转义。
结果是&#amp;233;
。
internal void SaveCurrentFile(XElement root)
{
var encoding = Encoding.GetEncoding("ISO-8859-1");
XmlWriterSettings xmlWriterSettings = new XmlWriterSettings
{
Indent = true,
OmitXmlDeclaration = false,
Encoding = encoding
};
using (var writer = XmlWriter.Create(GetFolderPath() + "test.xml", xmlWriterSettings))
{
root.Save(writer);
}
}
我没有在XmlWriterSettings中看到任何帮助我的选项。
感谢您的帮助。
答案 0 :(得分:1)
数字字符实体引用是Unicode代码点。例如,
&安培;#x1f6b2; (U + 1F6B2)。 &安培;#233;将是é(U + 00E9)。仅当文档编码不支持特定Unicode代码点时,通常才使用数字字符实体引用。 XML编写器会为您解决此问题。
因此,如果您希望将é作为数字字符实体发出,则只需使用不支持它的文档编码。 ASCII是一个。但是,它可能是十六进制(é)而不是十进制(é)。