1

我是 PHP 新手,所以也许这是个愚蠢的问题。如何使用 PHP 轻松操作 xml 文档并从中获取数据?有人可以给我看一些例子吗?

我试过这个:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note> 

这是我的 php:

<?php
$xml = simplexml_load_file("test.xml");

echo $xml->getName() . "<br />";

foreach($xml->children() as $child)
{
 echo $child->getName() . ": " . $child . "<br />";
}
?> 

这仅适用于这个文档,但是当我尝试一些更大的 xml 时它不起作用。它一直只写回一个标签。

4

1 回答 1

2

您的问题是,您的代码只能获取 xml 文档的第一个节点。试试这样:

                $xml = simplexml_load_file($url) ;
                echo '<br /><b>all of the data:</b>'.'<br>  </br><div class="data">';
                echo $xml->getName() . "<br />"; 
                foreach($xml -> children() as $name => $child ){
                echo $name.'<br />';
                    foreach($child -> children() as $name1 => $child1  ) {
                    echo $name1.'<br />'; //fetching children nodes
                        foreach($child1 -> children() as $name2 => $child2  ) {
                        echo $name2.'<br />';
                        }
                        // ..... and so on...depends how deep is you node tree
                    }

                }

你可以使用 xpath 来获取你想要的东西。这很简单,您可以使用它构建查询。试试这样:

                $result=$xml->xpath($your_query);
                foreach($result as $bla) {
                    echo "$bla<br />";
                    }

您可以使用此 CD 目录来测试您的代码: http ://www.w3schools.com/xml/cd_catalog.xml

以下是使用 xpath 的一些示例:http: //www.w3schools.com/xpath/xpath_examples.asp

于 2012-08-18T09:27:43.527 回答