SimpleXML - 剥离CDATA标签(或嵌入XML中的HTML标记)
问题描述:
我刚刚开始在PHP和Javascript的上下文中学习XML,并且遇到了一个问题。SimpleXML - 剥离CDATA标签(或嵌入XML中的HTML标记)
所以问题是我想将XML标记放在XML中,然后能够通过PHP提取这些内容,并将HTML嵌入到使用SimpleXML读取XML的不同文件中。我与沿线的
echo $child->asXML();
东西呼应吗?但是,当然CDATA标签仍然存在,这是行不通的。所以,我的问题是,是否有一种方法可以A.以不同的方式嵌入HTML标记,这种方式被XML解析器忽略,但可以在HTML文档中使用,或者B.从代码中剥离CDATA标记的方法?
答
只需重新加载XML解析器中的字符串,但不包括CDATA。
echo simplexml_load_string($child->asXML(), null, LIBXML_NOCDATA)
别介意我。
答
如果您使用nodeValue
属性而不是asXML()
,CDATA标签应该消失。
喜欢的东西
echo $child->nodeValue;
应该做的工作。
不幸的是,似乎nodeValue返回一个SimpleXMLElement对象,而不是一个字符串或一些有用的东西。或者我应该调用nodeValue上的另一个函数来输出它? – Will 2010-08-13 21:04:48
@会回声(字符串)$ child-> nodeValue'工作? – 2010-08-13 21:18:34
仍然没有运气。这是一个普通的节点对象[我认为],所以我怀疑我可以用任何方式对它进行注释。 – Will 2010-08-13 21:21:30