0

这是我的 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

因为 ' & ' ... 在描述节点

请指教

4

3 回答 3

1

您想要更改您的 XML。为确保您对 XML 文档没有任何问题,您应该在 CDATA 中包含包含&of<或的字符串。>

所以你的描述应该是这样的

<description><![CDATA[ATT&T]]></description>

更多细节在这里

更新:

自 OP 发布以来,他无法修改 XML。

用实体替换&符号:&amp;

$xml = str_replace('&', '&amp;', $xml);

上面的行将用&amp;实体替换 -all- &'s。

于 2013-10-19T08:52:33.867 回答
0

将 ATT&T 替换为 ATT&T,因为 XML 中不允许使用未转义的 & 符号。

于 2013-10-19T08:57:40.217 回答
-1
UPDATE:

libxml_use_internal_errors(true);
$xmlDoc = new DOMDocument();
if($xmlDoc->load($RSSURL->URL))
{

}else{
     echo 'XML file is not valid structure';
}
于 2013-10-21T10:51:09.980 回答