繁体   English   中英

C# XMLTextWriter - XML 1.1

[英]C# XMLTextWriter - XML 1.1

我正在处理一个大型 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 接口的自定义实现
  • 处理 使用自定义方法
  • 使用实现的实例来读取文档

参考

你能用 WriteRaw("<?xml version=\\"1.1\\"?>") 替换 WriteStartDocument() 并删除 WriteEndDocument() 吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM