【问题标题】:Call to undefined method SimpleXMLElement::child_nodes()调用未定义的方法 SimpleXMLElement::child_nodes()
【发布时间】:2011-04-26 14:56:53
【问题描述】:

我有一个代码来解析从谷歌搜索获得的 xml 文本 以前可以正常工作,我认为更新我的版本信息后它不能正常工作

我收到以下错误可能是什么问题

Fatal error: Call to undefined method SimpleXMLElement::child_nodes() in /home/search.php in line 70

请告诉我如何解决这个问题

此代码用于 smarty 它从 curl 获取响应字符串。

【问题讨论】:

    标签: php xml simplexml smarty


    【解决方案1】:

    SimpleXMLElement 没有名为child_nodes 的方法。您在寻找children 方法吗?

    【讨论】:

    • 我认为是版本问题。在 php 版本 4 中,它在 php 版本 5 中工作正常
    • @phani,三年前停止支持 PHP4。 PHP4 不再更新,也没有收到错误修复——甚至没有安全修复!您不应该在生产环境中使用 PHP4,当然也不应该开发设计为在 PHP4 下运行的新代码。
    • @phani PHP4 中从来没有 SimpleXml。你是在说phpclasses.org/package/…吗?
    【解决方案2】:

    非常感谢您的回答。

    我通过使用 domxml-php4-to-php5.php 文件解决了我的问题,我刚刚上传了该文件并将该文件名包含在我的文件中。它成功了。

    我从这个链接得到那个文件:http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/

    :)

    【讨论】:

      【解决方案3】:

      使用以下符号遍历您的 xml(更改“myfile.xml”和“tagName”):

      <?php
      include('simple_html_dom.php');
      if (file_exists('myfile.xml')) {
          $xml = simplexml_load_file('myfile.xml');
          print_r($xml);
          foreach( $xml->children() AS $child ) {
              $name = $child->getName();
              if ($name == 'tagName') {
                  foreach( $child->children() AS $grandchild ) {
                      // DO SOMETHING
                  }
              }
          }
      }
      ?>
      

      还有其他更优雅的方法来实现这一点,但这是一种简单的初学者方法。技术信息:http://us2.php.net/manual/en/class.simplexmlelement.php

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-27
        • 2019-10-25
        • 2018-07-11
        • 2013-10-23
        • 2012-02-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多