• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php读取xml文档遇到实体符号时出错,该如何解决

php 搞代码 3年前 (2022-01-25) 16次浏览 已收录 0个评论

php读取xml文档遇到实体符号时出错
如aa bb
中间有这这格的实体符号时
会报出这种警告
( ! ) Warning: DOMDocument::load() [domdocument.load]: Entity ‘nbsp’ not defined in file:

读取xml文档是这样子
$xml = new DOMDocument(“1.0″,”UTF-8”);
$xml->load(‘myxml.xml’)6来源gaodaimacom搞#^代%!码网搞gaodaima代码;

——解决方案——————–
能自己发现问题就好,既然不允许出现,你准备怎么解决呢?
——解决方案——————–
FROM PHP Manual

PHP code

When using loadXML() to parse a string that contains entity references (e.g.,  ), be sure that those entity references are properly declared through the use of a DOCTYPE declaration; otherwise, loadXML() will not be able to interpret the string.Example:<?php$str = <<

This is a non-breaking space.

XML;$dd1 = new DOMDocument();$dd1->loadXML($str);echo $dd1->saveXML();?>Given the above code, PHP will issue a Warning about the entity 'nbsp' not being properly declared. Also, the call to saveXML() will return nothing but a trimmed-down version of the original processing instruction...everything else is gone, and all because of the undeclared entity.Instead, explicitly declare the entity first:<?php$str = <<<!DOCTYPE root []>

This is a non-breaking space.

XML;$dd2 = new DOMDocument();$dd2->loadXML($str);echo $dd2->saveXML();?>Since the 'nbsp' entity is defined in the DOCTYPE, PHP no longer issues that Warning; the string is now well-formed, and loadXML() understands it perfectly.You can also use references to external DTDs in the same way (e.g., ), which is particularly important if you need to do this for many different documents with many different possible entities.Also, as a sidenote...entity references created by createEntityReference() do not need this kind of explicit declaration.
------解决方案--------------------
恭喜lz。~~
thanks ZT_king
------解决方案--------------------
和 & 这三个不能出现


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php读取xml文档遇到实体符号时出错,该如何解决
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址