C#XMLTextWriter - XML 1.1

时间:2014-12-05 06:12:12

标签: c# xml xml-1.1

我正在处理一个处理C#中字符串本地化的大型XML文件。我没有编写生成XML的程序,但我可以访问源代码,我想修改它,因为它当前输出1.0作为版本,但它包含文档中的非法字符。

以下是代码当前的写法。

XmlTextWriter xr = new XmlTextWriter(fileName, Encoding.UTF8);
xr.Formatting = Formatting.Indented; 
xr.Indentation = 4;
xr.WriteStartDocument();
xr.WriteStartElement("tlkFile");
// ...

但它使用XML版本1.0的WriteStartDocument() documentation states。我知道这不起作用,因为我正在编写一个修改此XML的java解析器,它无法加载,因为它具有不允许的unicode字符。特别是似乎取消了。我不知道为什么会出现这种情况......文件大约有500000行。

我在java解析器将其抓取到1.1之前手动更改了标头,并且它工作正常。从技术上讲,我可以将XML修改为字​​符串,然后解析它,但我宁愿使用适当的XML。

我找不到任何改变这个的方法。我无法真正改变工具来使用其他形式的XML编写,因为它是一个使用的共享开源项目,而且我对C#并不是那么好。

这有诀窍吗?

2 个答案:

答案 0 :(得分:1)

使用以下过程:

  • 创建IXmlSerializable接口的自定义实现
  • 使用自定义方法处理
  • 使用实现的实例来阅读文档

<强>参考

答案 1 :(得分:0)

你可以用WriteRaw替换WriteStartDocument()(&#34;&lt;?xml version = \&#34; 1.1 \&#34;?&gt;&#34;)并删除WriteEndDocument()?