这是我的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Title</title>
<link>http://www.Mydomain.com</link>
<description>Description</description>
<managingEditor>managingEditor</managingEditor>
<webMaster>webMaster</webMaster>
<lastBuildDate>Sat, 19 Oct 2013 09:21:40 +0400</lastBuildDate>
<generator>generator</generator>
<item>
<title>title</title>
<link>link</link>
<description>ATT&T</description>
<author>author</author>
<pubDate>25 Aug 2013 16:52:31 +0400</pubDate>
</item>
</channel>
</rss>
我读的是这样的:
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
但是我收到了这个错误:
Warning: DOMDocument::load(): EntityRef: expecting ';' in
file:///C:/xampp/htdocs/readxml/rss.xml, line: 14 in
因为&#39; &安培; &#39; ...在描述节点
中请告知
答案 0 :(得分:1)
您想要更改XML。为确保您对XML文档没有任何问题,您应该在CDATA中包含&
<
或>
的字符串。
所以你的描述应该是这样的
<description><![CDATA[ATT&T]]></description>
更多详情here
更新:
自OP发布以来,他无法修改XML。
将&
符号替换为&
实体:
$xml = str_replace('&', '&', $xml);
上面的行将用&
实体替换-all-&amp;'s。
答案 1 :(得分:0)
将ATT&amp; T替换为ATT&amp; T,因为XML中不允许使用未转义的&符号。
答案 2 :(得分:-1)
UPDATE:
libxml_use_internal_errors(true);
$xmlDoc = new DOMDocument();
if($xmlDoc->load($RSSURL->URL))
{
}else{
echo 'XML file is not valid structure';
}