【问题标题】:parse complex xml with php in MD array在 MD 数组中用 php 解析复杂的 xml
【发布时间】:2012-06-05 18:47:39
【问题描述】:

我一直在寻找这个,但似乎无法找到答案。 我有一个相当复杂的 XML 文档,需要用 PHP 进行解析。 XML 的结构如下所示:

<root>

<main id="1"> *some data*

<sub id="1"> *some data*
    <sub id="2"> *some data*
        <sub id="3"> *some data*
            <sub id="4"> *some data* </sub>
            <sub id="5"> *some data* </sub>
        </sub>
    </sub>
</sub>

</main>

</root>

将这个文档解析成一个具有相同结构的多维数组是非常重要的。

但是,有一个问题。没有办法知道第一个标签内有多少子级别,如果有的话。这个文档是由另一个系统动态创建的,每个main标签的子结构都不一样。
我尝试使用 SimpleXMLElement,但它只解析第一级,即 main 标签和第一个 sub 标签之间的数据。

【问题讨论】:

    标签: php xml arrays parsing


    【解决方案1】:

    试试simplexml_load_string():

    <?php
    $string = <<<XML
    <?xml version='1.0'?> 
    <document>
     <title>Forty What?</title>
     <from>Joe</from>
     <to>Jane</to>
     <body>
      I know that's the answer -- but what's the question?
     </body>
    </document>
    XML;
    
    $xml = simplexml_load_string($string);
    
    print_r($xml);
    

    无论你有多少级别或结构是什么......只要它有效,你就会得到一个你可以使用的对象。

    【讨论】:

    • 迈克,感谢您的回答和帮助,但这只是不切实际。已经尝试过了,但就像我说的那样,输出无效,即解析器没有从更深的结构中获取数据。
    • 数据数据数据数据数据数据 数据 数据 数据 数据 数据 数据 数据 数据 数据
    猜你喜欢
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多