Php 检索节点时收到错误消息

Php 检索节点时收到错误消息,php,xml,Php,Xml,使用此代码时,我收到了此类错误消息 无法显示XML页面 无法使用样式表查看XML输入。请更正错误,然后单击>刷新按钮,或稍后重试。 XML文档中只允许有一个顶级元素。处理资源时出错textstuff 检查您输出的XML源,您的XML缺少文档元素并正在转义 更好的方法是使用DOM复制节点: <?php $string = <<<XML <a><b><c>text</c><c>stuff</c><

使用此代码时,我收到了此类错误消息

无法显示XML页面 无法使用样式表查看XML输入。请更正错误,然后单击>刷新按钮,或稍后重试。 XML文档中只允许有一个顶级元素。处理资源时出错
textstuff


检查您输出的XML源,您的XML缺少文档元素并正在转义

更好的方法是使用DOM复制节点:

<?php

$string = <<<XML
<a><b><c>text</c><c>stuff</c></b><d><c>code</c></d></a>
XML;

// load source XML and create Xpath instance
$source = new DOMDocument();
$source->loadxml($string);
$xpath = new DOMXpath($source);

// create target document with document element
$target = new DOMDocument();
$root = $target->appendChild($target->createElement('e'));

// copy nodes from source to target
foreach ($xpath->evaluate('/a/b/c') as $child) {
  $root->appendChild($target->importNode($child));
}

// output target
echo $target->saveXml();

在此代码下方。。我需要检索特定的节点,这是我想要做的代码

<?php
    $string = <<<XML
    <a>
    <b>
    <c>text</c>
    <c>stuff</c>
    </b>
    <b>
    <c>code</c>
    </b>
    <d>
    <c>item</c>
    </d>
    </a>
    XML;
    $xml = new SimpleXMLElement($string);
     $xml->asXML()."<br>";
       // echo "<c>".(string)$child."</c>";
        foreach( $xml->children() AS $child )
    {
        //run any query you want on the children.. they are also nodes.
       $name1 = $child;
        //echo "<pre><c></pre>".$name1."<pre><c></pre><br>";

        foreach( $name1->children() AS $child1 )
        {
            $name2 = $child1->getName();
            $child2=$child1;
            // echo $name2."--".$child2;
            echo "&lt;".$name2."&gt;".$child2."&lt;&frasl;".$name2."&gt;"."<br>";
        }
    }
    ?>


是。我需要检索像textstuff这样的子节点。。我想为此做什么您想回显
标记的值/内容还是以xml形式返回此页我不想以完整xml形式返回此页。。我只需要这个xml节点上的textstuff..对不起..我是php新手。。我也需要价值观。。这就是文本。为什么我们需要创建新元素,我们不能这样孤注一掷地显示文本..我是php新手。。我也需要价值观。。这就是文本。为什么我们需要创建新元素,我们不能单独显示文本。XML总是需要一个文档元素,一个
是可能的,但不是
。这与PHP无关,但都与XML有关。您问题中的消息来自浏览器,而不是PHP。。如何检索特定节点。。i、 例如,如果b节点的值为like,则表示它将返回b的子节点。。
<?php
    $string = <<<XML
    <a>
    <b>
    <c>text</c>
    <c>stuff</c>
    </b>
    <b>
    <c>code</c>
    </b>
    <d>
    <c>item</c>
    </d>
    </a>
    XML;
    $xml = new SimpleXMLElement($string);
     $xml->asXML()."<br>";
       // echo "<c>".(string)$child."</c>";
        foreach( $xml->children() AS $child )
    {
        //run any query you want on the children.. they are also nodes.
       $name1 = $child;
        //echo "<pre><c></pre>".$name1."<pre><c></pre><br>";

        foreach( $name1->children() AS $child1 )
        {
            $name2 = $child1->getName();
            $child2=$child1;
            // echo $name2."--".$child2;
            echo "&lt;".$name2."&gt;".$child2."&lt;&frasl;".$name2."&gt;"."<br>";
        }
    }
    ?>