如何在XML中使用十进制实体代码而不是十六进制实体代码

时间:2017-09-18 09:41:33

标签: c# xml

在我的C#应用​​程序中,我正在从具有\ r \ n字符的源读取数据,并将它们转换为XmlDocument。使用XmlDocument的CreateElement方法时,它使用十六进制实体代码(例如
)对它们进行转义。

我必须将此XML发送到第三方应用程序,该应用程序仅接受十进制实体代码。所以我必须发送


如何配置XmlDocument以使用十进制实体代码?

2 个答案:

答案 0 :(得分:1)

一旦接收器应用程序被歪,简单的方法就是引入后处理步骤,将XML字符串烘焙为“可接受”格式。所以,string.Replace()应该可以帮到你。效率不高,非常有效。悲伤却又是真的。

答案 1 :(得分:0)

当您的接收应用程序不接受正确的XML时,最好的办法是更改接收应用程序。 (同样,如果您的发送应用程序没有发送正确的XML,则最好更改发送应用程序)。这就是标准的全部内容:如果你想获得XML的好处,每个人都必须遵守规则。

生成受约束的XML通常会很困难且成本高昂,因为它会限制您选择的工具,或者您必须手动编写内容而不是使用现成的软件。

我认为有很多工具可以让你控制数字字符引用的编写方式,但是有一种方法可以控制Saxon(PE或更高版本)。您可以使用扩展属性saxon:character-representation作为附加序列化属性:请参阅http://www.saxonica.com/documentation/index.html#!extensions/output-extras/serialization-parameters