【问题标题】:Why is this loop running indefinitely?为什么这个循环无限期地运行?
【发布时间】:2015-09-01 07:02:33
【问题描述】:

我有这样的代码,它读取 XML 文档并将其复制到不同格式的 XML。

    $new = '<prestashop>';

    while ($xml_reader->read() and $xml_reader->name !== 'product');

    while ($xml_reader->name === 'product')         // dla kazdego produktu
    {
        $node = new SimpleXMLElement($xml_reader->readOuterXML());
        $new .= '<product>';

        foreach ($this->columns as $out => $in)     // dla kazdej kolumny xml
        {
            if ($node->$xml !== '')                 // jesli ma wartosc
            {
                $new .= "<{$out}>{$node->$in}</{$out}>";
            }
            else
            {
                $new .= "<{$out}/>";
            }
        }
        $new .= '</product>';
    }
    $new .= '</prestashop>';

XML 有这样的结构:&lt;product&gt;...&lt;/product&gt;&lt;product&gt;...&lt;/product&gt;。我尽我所能检查了,错误可能在while

@edit:我使用PHP的XML Reader来一个一个的获取节点,然后SimpleXML来处理节点本身。

【问题讨论】:

    标签: php xml xmlreader


    【解决方案1】:

    这很愚蠢。我忘记了$xml_reader-&gt;next('product'); 所以while 循环总是围绕同一个节点一遍一遍。

    【讨论】:

      猜你喜欢
      • 2021-09-03
      • 1970-01-01
      • 2020-08-08
      • 2015-03-27
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多