xml解析 寫入遇到的坑

2022-01-17 11:06:35 字數 737 閱讀 2631

最近在看乙個線上xml檔案匯出的問題,需求如下:

從我們平台匯出乙個字尾為tmx的術語語料資料(實際內容為xml檔案),然後匯入到其他第三方平台發現無法匯入。

從其他平台匯入的tmx檔案無法匯入到我們平台。

因為第三方平台並沒有提示**出錯,所以這裡還是用了一點時間來定位問題,主要問題有以下兩點:

這些特殊標籤在xml中都需要轉義才能夠使用,對應的轉義列表如下:

這個是在匯入時報了乙個錯:an invalid xml character (unicode: 0x**) was found in the comment.

最後查詢才知道這個是解析的xml中有特殊字元,或者稱為亂碼。(xml格式為utf-8 bom)

一般是因為xml中有些不可見的特殊字元,官方定義了xml中的無效字元分為三段:

0x00 - 0x08  

0x0b - 0x0c

0x0e - 0x1f

所以解決方法是 解析或者寫入前將字串的非法字元過濾掉,方法如下:

string.replaceall("[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]", "")
今天將自己踩到的坑記錄一下,以往對園友有所幫助。

VC 中XML檔案的解析讀取寫入

1 在stdafx.h中引用如下 include tlh msxml4.tlh using namespace msxml2 if win32 winnt 0x0400 hresult hres coinitializeex null,coinit multithreaded else hresul...

android下解析xml檔案遇到中文問題

很多android開發者可能一直抱怨xml解析庫不夠完善,對於國內很多server並不是標準的utf 8編碼,遇到中文時可能解析器會停止或解析出來的是亂碼。這裡android123給大家說下常見的解決方法 一 android sax庫遇到gbk或gb2312編碼時 方法1.可以顯示的指明編碼比如 i...

android下解析xml檔案遇到中文問題

很多android開發者可能一直抱怨xml解析庫不夠完善,對於國內很多server並不是標準的utf 8編碼,遇到中文時可能解析器會停止或解析出來的是亂碼。這裡給大家說下常見的解決方法 一 android sax庫遇到gbk或gb2312編碼時 方法1.可以顯示的指明編碼比如 inputsource...