2010-08-13 101 views
4

我剛剛開始在PHP和Javascript的上下文中學習XML,並且遇到了一個問題。SimpleXML - 剝離CDATA標籤(或嵌入XML中的HTML標記)

所以問題是我想將XML標記放在XML中,然後能夠通過PHP提取這些內容,並將HTML嵌入到使用SimpleXML讀取XML的不同文件中。我與沿線的

echo $child->asXML();

東西呼應嗎?但是,當然CDATA標籤仍然存在,這是行不通的。所以,我的問題是,是否有一種方法可以A.以不同的方式嵌入HTML標記,這種方式被XML解析器忽略,但可以在HTML文檔中使用,或者B.從代碼中剝離CDATA標記的方法?

回答

5

只需重新加載XML解析器中的字符串,但不包括CDATA。

echo simplexml_load_string($child->asXML(), null, LIBXML_NOCDATA) 

別介意我。

0

如果您使用nodeValue屬性而不是asXML(),CDATA標籤應該消失。

喜歡的東西

echo $child->nodeValue; 

應該做的工作。

+0

不幸的是,似乎nodeValue返回一個SimpleXMLElement對象,而不是一個字符串或一些有用的東西。或者我應該調用nodeValue上的另一個函數來輸出它? – Will 2010-08-13 21:04:48

+0

@會回聲(字符串)$ child-> nodeValue'工作? – 2010-08-13 21:18:34

+0

仍然沒有運氣。這是一個普通的節點對象[我認爲],所以我懷疑我可以用任何方式對它進行註釋。 – Will 2010-08-13 21:21:30