【问题标题】:[PHP][XML] SimpleXML children() returns only one child[PHP][XML] SimpleXML children() 只返回一个孩子
【发布时间】:2014-09-18 06:22:11
【问题描述】:

我正在尝试通过 PHP 获取 XML 文件中的子项,如下所示:

<root>
    <version>1.0.0</version>
    <menu>
        <Stammdaten>
            <item>
                <id>Test1</id>
                <diconr>0</diconr>
            </item>
            <item>
                <id>Test1</id>
                <diconr>0</diconr>
            </item>
            <item>
                <id>Test1</id>
                <diconr>0</diconr>
            </item>
            <item>
                <id>Test1</id>
                <diconr>0</diconr>
            </item>
            <item>
                <id>Test1</id>
                <diconr>0</diconr>
            </item>
            <item>
                <id>Test1</id>
                <diconr>0</diconr>
            </item>
            <item>
                <id>Test1</id>
                <diconr>0</diconr>
            </item>
            <item>
                <id>Test121</id>
                <diconr>1</diconr>
            </item>
            <item>
                <id>Test12</id>
                <diconr>1</diconr>
            </item>
            <item>
                <id>Test1</id>
                <diconr>10622</diconr>
            </item>
            <item>
                <id>Test1</id>
                <diconr>10707</diconr>
            </item>
            <item>
                <id>Test1</id>
                <diconr>10707</diconr>
            </item>
        </Stammdaten>
    </menu>
</root>

我想遍历所有“项目”,但是当我这样做时

echo $xml->menu[0]->Stammdaten->children()->asXML();

它只返回第一项,仅此而已。谁能告诉我我做错了什么?

问候,

【问题讨论】:

  • 一个格式良好的 XML 文档必须只有一个根节点,因为asXML 必须返回一个格式良好的 XML 文档,所以它只返回一个节点。您可以使用$xml-&gt;menu[0]-&gt;Stammdaten-&gt;asXML(),但您将拥有&lt;Stammdaten&gt; 作为根节点。
  • XML 更大,节点更多,我只是为了测试而把它变小了。

标签: php xml


【解决方案1】:

children() 返回一个迭代器,所以你可以像这样使用它:

foreach ($xml->menu[0]->Stammdaten->children() as $child)
    echo $child->asXML();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    相关资源
    最近更新 更多