2010-08-13 67 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