我正在處理一個xml文檔並從中讀取值。我正在閱讀的其中一個價值在於它。這是值的外觀:M/S John Smith At 4
。我正在模擬器上進行一些測試,並顯示正確的值。現在我將我的應用程序部署到我的Samsung Galaxy S2 device
,並且該過程沒有正確讀取值。它只是在該名稱的值字段中顯示M.無法讀取設備上的「/」
我想這可能是因爲/是一個特殊字符。有什麼我可以做的,以逃避價值中的特殊字符,並讀取它的全名?
P.S .:我不是一個有經驗的Java開發人員,所以這個問題可能聽起來很愚蠢,但如果你有解決方案,請讓我知道。
當我打印在控制檯窗口中的數值,這是解析它之後它在XMLDOCUMENT如何讀取:M/S John Smith At 4
該函數讀取值:
public static String getCharacterDataFromElement(Element e) {
Node child = e.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
}
return "";
}
在adove功能,cd.getdata()
返回中號
一些調試後:
當我看到這個元件在監視窗口,F或其他名稱只有一個孩子。但是,對於包含/它有3個孩子的元素。它切割它看到/在那裏的stringbuffer bcz。我想或者我必須改變下面的功能,並準備好所有的孩子節點,或者我必須在那裏使用轉義字符,然後再傳遞它。
這聽起來像一個有趣的問題;你能發佈你寫的只提取「M」的代碼嗎? – mfrankli 2012-03-16 03:58:44
@mfrankli:請參閱編輯。 – Asdfg 2012-03-16 04:04:23
問題是,正如你猜測的那樣,'/'是一個特殊字符。 /指的是'/'的ascii值47。這裏的轉折點在於它在仿真器上工作,但不在設備上,這是令人驚訝的,我沒有很好的答案。至於簡單的工作,你可以嘗試將'child'轉換成CDataSection(http://developer.android.com/reference/org/w3c/dom/CDATASection.html)而不是CharacterData – mfrankli 2012-03-16 04:24:34