【问题标题】:Fatal error: Call to undefined method XMLReader::readInnerXML()致命错误:调用未定义的方法 XMLReader::readInnerXML()
【发布时间】:2012-01-06 16:01:24
【问题描述】:

我不知道为什么会出现此错误。我有 libxml 版本 2.6.22。我做的搜索比任何人关心的都要多。请帮忙。

致命错误:调用未定义的方法 XMLReader::readInnerXML()

【问题讨论】:

  • 你的 PHP 版本是多少?
  • 你能发布你试图解析的xml吗?这可能是问题所在。
  • @Zenox:你的意思是外部文件实际上会导致 PHP 忘记事情?
  • 您启用了--enable-libxml 吗?或者你的 PHP 用--disable-xmlreader编译?
  • 我的环境是一个 appserv 安装 - 适用于 Windows 的 2.5.7

标签: php xml


【解决方案1】:

XMLReader::readInnerXML 自 libxml 2.6.20 和 PHP 5.2.0 起可用。

由于您的 libxml 版本较新,可能是您的 PHP 版本已过时。

【讨论】:

  • 我明白了,谢谢。我在 PHP 5.1.6 上。然后奇怪的事情:删除函数调用末尾的 () 删除了错误消息,但返回的值是空白的。有什么想法吗?
  • 是的,使用 libxml 2.6.32 和 php 5.2.6 在 appserv 2.5.10 上仍然返回空白
  • code function get_xml_data($xml){ //拉取某些元素 $reader = new XMLReader(); //$reader->open($xmlfile); $阅读器->XML($xml); while ($has_read = $reader->read()) { switch ($reader->nodeType) { case (XMLREADER::ELEMENT): $node_type = $reader->nodeType; echo $node_type."->"; $node_name = $reader->name; if ($node_name == "gs_relay_rpc"){//我现在需要这个来工作 echo $node_name." = "; $node_value = $reader->readInnerXML; echo $node_value."
    "; get_xml_data($node_value);等
  • 这一行“get_xml_data($node_value);”是否存在,因为在内容“gs_relay_rpc”节点被构建到一个 sql 字符串中,尽管它的解析方式与其他任何内容相同。所以我需要在解析器继续到其他节点之前将父标记“gs_relay_rpc”完全处理为 sql 字符串。有什么建议吗?
  • 当我注释掉递归并在函数调用 '$reader->readInnerXML' 结束时返回 '()' 时,该函数工作并返回一个字符串,但只要该行返回我得到“解析器错误:文档末尾的额外内容...”
猜你喜欢
  • 2015-01-28
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
  • 2014-07-20
  • 2012-07-24
相关资源
最近更新 更多