在c#asp.net中加载文档时缺少xml实体

时间:2014-09-06 07:31:22

标签: c# xml

嗨我有一个带实体的xml文件, 下面是我的一段xml代码

<line>Intellectual life &#x2013; 1268&#x2013;1559. I. Title.</line>
<line>DG533.R84 2015</line>
<line>945&#x2032;.05&#x2013;dc23 2014019659</line>

当我在c#中加载上面的xml时,实体丢失并被其他一些值替换, 我可以知道是什么原因

下面的

是使用c#

修改的xml
<line>Intellectual life – 1268–1559. I. Title.</line>
<line>DG533.R84 2015</line>
<line>945′.05–dc23 2014019659</line>

我希望修改后的xml与source xml

相同

这是我执行上述过程的c#代码

using System.Xml;

XmlDocument doc= new XmlDocument();
doc.Load("sample.xml");
doc.Save("sample.xml");

由于   阿普

1 个答案:

答案 0 :(得分:2)

How do I preserve special characters when writing XML with XDocument.Save()?

根据@ JonSkeet在上面链接中的答案,他们(编码实体及其相应的字符被保存)只是同一事物的不同表示。这种翻译不会给你带来任何麻烦,因为通常进一步处理XML的接收方会将这两种表示识别为同一事物。

XDocument.Save() removes my &#xA; entities

如果您确实需要保留实体,还可以尝试通过继承XmlTextWriter类并覆盖它的WriteString()方法来手动用相应的实体替换每个特殊字符。有关示例实现,请参见上面的第二个链接无论如何,如果要保留许多不同的实体,这种方法将会很麻烦。