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#不是很好。
这有什么诀窍吗?
使用以下
过程:
- 创建 IXmlSerializable 接口的自定义实现
- 使用自定义方法处理

- 使用实现的实例读取文档
引用
- 如何正确实现IXml可序列化
- 使用 IXmlSerializable 反序列化空格字符
你能用
WriteRaw("<?xml version=''"1.1''"?>"( 替换 WriteStartDocument(( 并删除 WriteEndDocument(( 吗?