XML 内容到 PHP 变量

XML content into PHP variables

我已经做了好几个小时了,但真的无法正常工作...我在 xml 文件中有以下内容:

<stores data="4850" times="01010101">
  <folder info="storage" DateTime="datetime1" update="212121012" versionNumber="ver1" url="http://url1" locater="location1"/>
  <folder info="images" DateTime="datetime2" update="1421748774" versionNumber="ver2" url="http://url2" locater="location2"/>
</stores data>

我需要使用 PHP 将每个元素放入不同的变量中。这是我的代码,它获取 xml 文件并将其打印出来,但在此之后我被卡住了。

$xml_ip = simplexml_load_file('file.xml');
print_r($xml_ip);

有了这个,我得到了屏幕上看起来像数组的东西,但我无法将所有 xml 条目都放入变量中。

谢谢。

那是无效的 XML,如果您使 XML 有效,它将起作用

因此将文件更改为

<stores data="4850" times="01010101">
  <folder info="storage" DateTime="datetime1" update="212121012" versionNumber="ver1" url="http://url1" locater="location1"/>
  <folder info="images" DateTime="datetime2" update="1421748774" versionNumber="ver2" url="http://url2" locater="location2"/>
</stores>

我所做的就是修复这条线

</stores data>

Copy/Paste每次都会得到你!!!

然后你会得到这个:-

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [data] => 4850
            [times] => 01010101
        )
    [folder] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [info] => storage
                            [DateTime] => datetime1
                            [update] => 212121012
                            [versionNumber] => ver1
                            [url] => http://url1
                            [locater] => location1
                        )
                )
            [1] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [info] => images
                            [DateTime] => datetime2
                            [update] => 1421748774
                            [versionNumber] => ver2
                            [url] => http://url2
                            [locater] => location2
                        )
                )
        )
)

回复附加评论

您已经将此数据保存在变量中,这一行

$xml_ip = simplexml_load_file('file.xml');

创建一个名为 $xml_ip

的 PHP 简单 XML 元素对象

您现在需要学习如何处理这个对象,here is the documentation

这里有一段简单的代码,用于打印数据作为开端。

$xml_ip = simplexml_load_file('file.xml');

echo $xml_ip->attributes()['data'] . PHP_EOL;
echo $xml_ip->attributes()['times'] . PHP_EOL;

foreach ( $xml_ip->folder as $xmlEltObj ) {

    foreach ($xmlEltObj->attributes() as $attr => $val) {
        echo '   '. $attr . " = " . $val.PHP_EOL;
    }

}

打印

4850
01010101
   info = storage
   DateTime = datetime1
   update = 212121012
   versionNumber = ver1
   url = http://url1
   locater = location1
   info = images
   DateTime = datetime2
   update = 1421748774
   versionNumber = ver2
   url = http://url2
   locater = location2