2011-12-15 92 views
-1

我正在使用NSXMLParsing解析一些XML數據。奇怪的XML解析與符號

我叫一個元素.... <Email>[email protected]&t.net</Email>

所以當didStartElement代表來響應的ElementName電子郵件

它將foundCharacters去獲取電子郵件正文。

但在foundCharacters文本字符串我只能得到高達[email protected]不是全文。其考慮&t作爲特殊字符。這就是爲什麼在那之後,它將在parseErrorOccurred代表。

如何避免此類錯誤。我不能硬編碼任何東西來取代文字。因爲電子郵件應該照原樣打印。

回答

3

簡而言之,這不是有效的XML。 &字符必須轉義。從section 2.4 of the XML 1.0 spec

與符號字符(&)和左尖括號(<)不能出現在它們的字面的形式,作爲標記定界符時,或除了註釋,處理指令,或CDATA內部分。如果它們在其他地方需要,則必須分別使用數字字符引用或字符串&amp;&lt;進行轉義。

如果您想使用XML解析器,則需要爲其提供有效的XML。無論創建的XML應該逃脫它適合你,到:

<Email>[email protected]&amp;t.net</Email> 

什麼創建的XML文件?這種事情通常發生在人們從字符串構建XML時,而不是使用XML API來創建。

1

爲了有效

<Email>[email protected]&t.net</Email>

應當逃到

<Email>[email protected]&amp;t.net</Email>

+0

呸,什麼喬恩說。發佈時我的瀏覽器崩潰。 – 2011-12-15 06:55:20