因为我的系统需要与另一个系统做数据交换,对方通过导入XML文件完成数据导入,但只接受GBK编码的XML文件。
我在项目中通过LINQ to XML创建对方所需的XML结构,代码片段如下:
XDocument doc = new XDocument
(
new XDeclaration("1.0", "gbk", "yes"),
new XElement("FTFTZ",
new XElement("ENVELOPE",
new XElement("SENDER", "123456"),
new XElement("RECEIVER", "5321"),
new XElement("SEND_DATE", "2009-09-06"),
new XElement("TYPE", "0"),
new XElement("BILL_TYPE", "SI"),
new XElement("STATUS", "0"),
new XElement("AGENTCY", "YWT")
)
)
);
doc.Save(@"C:\TEST.XML");
但无论我在定义XDeclaration时采用何种编码,最终生成的XML文件中,编码格式都是“utf-8”,生成的XML文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<FTFTZ>
<ENVELOPE>
<SENDER>123456</SENDER>
<RECEIVER>5321</RECEIVER>
<SEND_DATE>2009-09-06</SEND_DATE>
<TYPE>0</TYPE>
<BILL_TYPE>SI</BILL_TYPE>
<STATUS>0</STATUS>
<AGENTCY>YWT</AGENTCY>
</ENVELOPE>
</FTFTZ>
请问有什么方法可以让LINQ to XML直接生成GBK编码的XML文件?谢谢。