2011-06-13 49 views
1

我使用Python的elementtree庫來解析從MySQL查詢瀏覽器導出的.XML文件。當我將結果集導出到.XML時,它包含了這個非常奇怪的字符,它顯示爲在我的編輯器中綠色圓角矩形中突出顯示的字母「BS」。 (見截圖)反正我通過文件迭代,並嘗試手動替換字符,但它不能匹配,因爲我這樣做後:使用ElementTree.parse解析XML文件時出錯

for lines in file: 
    lines.replace("<Weird Char>", "").strip(); 

我從解析方法的錯誤。但是,如果我在手寫板/記事本等手動替換字符...解析呼叫正常工作。我正在尋找一種方法來解析出角色,而無需手動完成。

任何幫助都很棒:我包括兩個屏幕截圖,其中一個角色出現在我的編輯器中,另一個角色出現在Chrome中。

感謝

screen shot from my editor screen shot from chrome

編輯:您可能要放大圖像,對不起。

+0

什麼是錯誤? – Keith 2011-06-13 15:01:36

+0

python parse.py zombie.xml 打開 2011-06-13 15:08:34

回答

1

退格字符不是有效的XML字符,需要轉義(&#08;)。我很驚訝MySQL在這裏沒有這樣做,但我不熟悉MySQL。您也可以檢查您的數據並使用更新語句進行清理,以消除該字符,如果它不是該表的有效數據。

至於Python中解析出來,這應該工作:

lines.replace("\b", "&#08;") 
+0

它是退格字符?這正是我原先想的,但是當我將它粘貼到鍍鉻物中時,它給了我那個奇怪的符號。還有Backspace的編碼? – 2011-06-13 15:04:07

+0

我不知道其他角色是什麼。我不使用與您相同的編輯器,但是如果您在十六進制編輯器中打開XML,您可能會看到BS字符(ASCII 8)。而且,是的,''是退格字符的轉義碼(不要忘記分號)。 – 2011-06-13 15:35:00

+0

謝謝,生病給了一個鏡頭。 – 2011-06-13 15:39:00

相關問題