从XML文件中提取文本时
Here is some text before the
<br/><br/>
line break.
在PHP中,
echo $value->description;
我得到了文字,但没有包含br标签。我该如何解决这个问题?
感谢。
答案 0 :(得分:1)
根据经验,您甚至不应在<br/>
标签后获得任何文字。原因是因为XML中的所有文本节点都假设具有&lt;和&gt;替换为他们的htmlentity()对应物,并用htmlspecialchars()替换所有其他特殊字符。我相当肯定它会导致你的XML DOM解析器出错,或者至少把它作为一个新节点,我认为是一个带换行符的空文本节点。
唯一的解决方案是将XML存储到字符串中,使用正则表达式取出<br/>
标记(以及所有&lt;和&gt;标记),然后将其替换为我在上面提到的正确值。
或者,您可以阅读有关CDATA here的内容,然后转义标签,但如果您是创建该XML文件的那个,那就是这样。您应该通知网站管理员您从中获取XML的站点,XML是否被错误地创建。
答案 1 :(得分:0)
首先,您可以将XML文件读取为一个字符串,然后将“&lt; br /&gt;”替换为“&”。现在,您可以将替换的字符串作为XML数据加载,并使用XML DOM进行处理。