使用不受支持的实体引用处理US-ASCII编码的XML

时间:2016-05-11 10:47:34

标签: c# xml entity xml-entities xml-encoding

这个问题是这个page

的延续

处理:所涉及的过程,打开XML文件并在特定节点中进行一些修改并将其保存回另一个位置。

问题面对:在XML中进行一些修改后保存,不受支持的实体引用如ö转换为ö。我想保留实体(ö

中的实体

由于öö是相同的字符,但我需要保留在源xml中。

XML SOURCE

<?xml version="1.0" encoding="US-ASCII"?>
<heads>
    <head type="TRANSFER">
        <headtext xml:lang="ENG" original="y">My Name &#x00F6;is Sinthiya</headtext>
    </head>
</heads>

预期输出

<?xml version="1.0" encoding="US-ASCII"?>
<heads>
    <head type="TRANSFER">
        <headtext xml:lang="ENG" original="y">My Name &#x00F6;is Sinthiya</headtext>
    </head>
</heads>

立即行动

<?xml version="1.0" encoding="US-ASCII"?>
<heads>
    <head type="TRANSFER">
        <headtext xml:lang="ENG" original="y">My Name &#xF6;is Sinthiya</headtext>
    </head>
</heads>

我的代码

string path = @"C:\work\myxml.XML";
string pathnew = @"C:\work\myxml_new.XML";
XmlDocument doc = new XmlDocument();
doc.Load(path);
using (var writer = XmlWriter.Create(pathnew, new XmlWriterSettings { Indent= true, Encoding = Encoding.ASCII }))
{
    doc.Save(writer);
}

0 个答案:

没有答案