代码之家  ›  专栏  ›  技术社区  ›  Nick Weavers

为什么DomDocument loadXML对我不起作用?

  •  0
  • Nick Weavers  · 技术社区  · 8 年前

    我有一个非常简单的测试用例,我会睁大眼睛试图找出我做错了什么。下面是测试用例:

    <?php
    $xml = <<<XML
    <?xml version="1.0"?>
    <Contact>
        <Name>Foo Bar</Name>
        <Numbers>
            <Number>9876543210</Number>
            <Number>9876543212</Number>
        </Numbers>
        <Address>
            <Premise>11</Premise>
            <Postcode>ZZ99 9ZZ</Postcode>
        </Address>
    </Contact>
    XML;
    
    $dom = new domDocument( '1.0', 'utf-8' );
    $dom->preserveWhiteSpace = false;
    $dom->formatOutput = true;
    $dom->recover = true;
    libxml_use_internal_errors(true);
    $result = $dom->loadXML($xml);
    print_r($result);
    $errors = libxml_get_errors();
    print_r($errors);
    $dom->saveXML($xmlContentFormatted);
    echo "<pre lang=xml>";
    echo $xmlContentFormatted;
    echo "</pre><br><br>";  
    ?>
    

    和输出:

    1Array ( )
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Nigel Ren    8 年前

    您的代码中有一些错误,请使用 $doc 任何地方都没有定义-应该是 $dom ,也可以尝试使用 saveXML 无效。它试图使用 $xmlContentFormatted 作为保存的上下文节点-再次 $xmlContentFormatted 没有在任何地方定义-而是使用 saveXML() 作为输出。。。

    $dom = new DOMDocument( '1.0', 'utf-8' );
    $dom->preserveWhiteSpace = false;
    $dom->formatOutput = true;
    $dom->recover = true;
    libxml_use_internal_errors(true);
    $dom->loadXML($xml);
    echo "<pre lang=xml>";
    echo $dom->saveXML();
    echo "</pre><br><br>"; 
    
    推荐文章