C# XMLTextWriter - XML 1.1

本文关键字:XML XMLTextWriter | 更新日期: 2023-09-27 18:33:09

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

以下是代码当前编写的方式。

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

但是,WriteStartDocument()文档指出它使用 XML 版本 1.0。我知道这行不通,因为我正在编写一个修改此 XML 的 java 解析器,并且它无法加载,因为它具有不允许的 unicode 字符。具体来说似乎是取消的。我不确定为什么会在这里...该文件的长度约为 500000 行。

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

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

这有什么诀窍吗?

C# XMLTextWriter - XML 1.1

使用以下

过程:

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

引用

  • 如何正确实现IXml可序列化
  • 使用 IXmlSerializable 反序列化空格字符
你能用

WriteRaw("<?xml version=''"1.1''"?>"( 替换 WriteStartDocument(( 并删除 WriteEndDocument(( 吗?