Tom*_*ski 3 php xml parsing dom domdocument
当我在下面的XML中使用DOMDocument :: loadXML()时,我收到错误:
Warning: DOMDocument::loadXML() [domdocument.loadxml]: CData section not finished http://www.site.org/displayimage.php?album=se in Entity,
Warning: DOMDocument::loadXML() [domdocument.loadxml]: Premature end of data in tag image line 7 in Entity
Warning: DOMDocument::loadXML() [domdocument.loadxml]: Premature end of data in tag quizz line 3 in Entity
Warning: DOMDocument::loadXML() [domdocument.loadxml]: Premature end of data in tag quizzes line 2 in Entity
Fatal error: Call to a member function getElementsByTagName() on a non-object
Run Code Online (Sandbox Code Playgroud)
在我看来,我的CData部分已关闭,但我仍然得到此错误.XML看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<quizzes>
<quizz>
<title><![CDATA[Title]]></title>
<descr><![CDATA[Some text here!]]></descr>
<tags><![CDATA[one tag, second tag]]></tags>
<image><![CDATA[http://www.site.org/displayimage.php?album=search&cat=0&pos=1]]></image>
<results>
<result>
<title><![CDATA[Something]]></title>
<descr><![CDATA[Some text here]]></descr>
<image><![CDATA[http://www.site.org/displayimage.php?album=search&cat=0&pos=17]]></image>
<id>1</id>
</result>
</results>
</quizz>
</quizzes>
Run Code Online (Sandbox Code Playgroud)
你能帮我发一下这个问题吗?
小智 8
我发现通常隐藏的XML字符存在问题,所以我更喜欢像心爱的转义无效字符:
<?php
//$feedXml is the fetched XML content
$invalid_characters = '/[^\x9\xa\x20-\xD7FF\xE000-\xFFFD]/';
$feedXml = preg_replace($invalid_characters, '', $feedXml );
Run Code Online (Sandbox Code Playgroud)
Tom*_*ski -2
我发现问题在于使用 cURL 在 PHP 中传递此 XML。我已将其作为普通文本发送,并且此 XML 中的 & 字符被解释为下一个参数的分隔符。所以当我转义这个字符时它开始正常工作。
| 归档时间: |
|
| 查看次数: |
9920 次 |
| 最近记录: |