2010-01-25 147 views
0

我是新iphone development.I想忽略CDATA標籤在解析,因爲它考慮以下作爲text.Since我想單獨顯示內容中的HTML標籤,我希望我的解析器忽略CDATA我的源代碼是忽略CDATA而XML解析

[CDATA[<br /><p class="author"><span class="by">By: </span>By Sydney Ember</p><br><p>In the week since an </p>]]. 

有什麼辦法可以忽略CDATA標籤嗎? 有沒有什麼辦法來解析我的源碼兩次,所以它只顯示內容?

請給我一些示例code.Please幫我out.Thanks。

+0

http://stackoverflow.com/questions/2131151/displaying-the的重複/ 2131269#的最-XML頁面-contents 2131269 – deanWombourne 2010-01-25 13:39:15

回答

3

如果您將CDATA內容視爲XML而不是CDATA,那麼您的解析器將會引發錯誤(因爲您的HTML是XHTML和HTML的混合,並且格式不正確)。

如果你想要得到的HTML,然後解析XML,提取節點的文本內容,然後解析該文本爲HTML。

+0

如何解析的HTML文本,請給一些示例代碼 – Warrior 2010-01-25 13:44:36

1

沒有辦法忽略CDATA標籤 - 這是XML規範的一部分,解析器應該尊重它。

如果您不喜歡this answer to your earlier question的想法,您可以獲取CDATA部分的內容並再次將其解析爲XML。但是,這是非常不推薦!你不知道CDATA的內容將是有效的XML(他們可能不是)。如果您可以100%保證CDATA部分包含上面的表單,那麼您可能可以使用一些字符串操作來獲取數據(即string replace '<span class="by">By: </span>' with ''),但是,如果CDATA內容更改幾乎肯定會中斷。

xml從哪裏來?這是一個更好的主意去跟服務的業主,讓他們,而不是發送給您的描述類似

<description> 
    <author>By Sydney Ember</autho> 
    <text>In the week since an </text> 
</description> 

小號

+0

即使我能理解源代碼中的缺陷code.But所有的期待只有輸出和不理解源代碼中有CDATA的問題。 – Warrior 2010-01-25 13:52:40