C# 在不更改特殊字符的情况下修改xml文件
我有一个具有以下结构的XML文件:C# 在不更改特殊字符的情况下修改xml文件,c#,xml,C#,Xml,我有一个具有以下结构的XML文件: <?xml version='1.0'?> <a> <b> <d> <LineCode>0</LineCode> <LineName>Metro</LineName> <LineDescription>Test C&C all countries with MCF
<?xml version='1.0'?>
<a>
<b>
<d>
<LineCode>0</LineCode>
<LineName>Metro</LineName>
<LineDescription>Test C&C all countries with MCFM</LineDescription>
</d>
.......
<e>.....</e>
<f>....</f>
</b>
</a>
运行此代码后,将修改初始XML文件中使用的所有特殊字符。
例如,第一行变成:
<?xml version="1.0" encoding="utf-8"?>
线路变成:
<LineDescription>Test C&C all countries with MCFM</LineDescription>
测试C&;C所有拥有MCFM的国家
如何在不修改现有字符的情况下在我的XML文件中添加新节?或者如何在不修改现有特殊字符的情况下保存?==观察#1=
说明:如果省略了编码属性
==观察#2==
&
&;
说明:这些表示的XML实体是等效的
==摘要==
新文件将由其他应用程序使用,并且可能存在以下情况:
可能是读取或处理新文件时出现问题
表现良好的XML处理软件应该以同等的方式处理前后文档。因此,如果您在读取或处理新编辑的XML文件时遇到问题,那么这些问题确实应该得到解决。但是,您可能不会遇到预期的问题。如果处理文件的代码应该处理标准XML,那么字符存储在哪种格式都不重要。原始文件使用字符的数字代码,而新保存的文件使用标准实体名称。这同样适用于XML头行-version='1.0'和version=“1.0”-应该被完全相同地对待,并且附加的元素只标识写入文件时使用的字符集
如果您的其他应用程序使用标准XML解析器,或者能够读取标准XML的自定义解析器,那么修改后的XML应该没有问题。您可能遇到的唯一问题是,如果这些其他应用程序无法读取标准XML(即,它们假设所有值都使用单引号,或者它们没有正确处理XML标准实体,等等)——在这种情况下,您可能需要对发送给这些应用程序的任何文件使用过滤解析器,以确保满足这些要求。(即,一个简单的SAX解析器,在使用附加限制触发事件时写出文件)为什么更改该部分很重要?我只想保留初始字符。此文件被其他应用程序使用,在读取或处理此新文件时可能会出现问题。在尝试“修复”此问题之前,我会先测试是否存在问题。XML标准允许这些事情,因此读取文件的程序应该能够很好地处理这些事情。
<LineDescription>Test C&C all countries with MCFM</LineDescription>