我需要解析一个包含CDATA标记的XML文件。在此标签内,还有一个我要获取的标签。如何使用XMLReader来实现?
示例:
<glz:Param name="TITLE">
<![CDATA[Yellow <http://www.yellow.it>]]>
</glz:Param>
如何获取完整的信息Yellow <http://www.yellow.it>
?我只能得到“黄色”。
这是我的代码:
// load file, create a reader variable, etc.
if($reader->nodeType == XMLReader::CDATA)
{
echo $reader->value;
}
答案 0 :(得分:1)
根据您的评论:
问题可能是XmlReader正确获取了CDATA标记中的全部内容,但是您的浏览器再次将其解释为html。检查页面源以查看它是否包含一个元素。如果是这样,请尝试
echo htmlentities($reader->value);
或发送内容类型为text / plain的标题。
答案 1 :(得分:0)
您可以通过字符串搜索获得它。如您所见,字符串“ http://www.yellow.it]]>不是XML,因此您无法使用XMLReader对其进行解析。 请在上面搜索字符串。 例如,您可以将字符串拆分为“ http:”,并且可以获得2个子字符串。 从第二个String中,您可以获得不带“>]]>”的完整链接。
希望这会有所帮助。