簡體   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