用php进行xml操作

用php进行xml操作,php,xml,Php,Xml,我是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 m

我是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 />";
}
?> 
getName()。“
”; foreach($xml->children()作为$child) { echo$child->getName()。“:”$child。“
”; } ?>

这仅适用于此文档,但当我尝试使用更大的xml时,它不起作用。它始终只回写一个标记

您的问题是,使用代码只能获取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
                    }

                }
                $result=$xml->xpath($your_query);
                foreach($result as $bla) {
                    echo "$bla<br />";
                    }
$xml=simplexml\u加载文件($url);
回显“
所有数据:”。

”; echo$xml->getName()。“
”; foreach($xml->children()作为$name=>$child){ 回显$name。“
”; foreach($child->children()作为$name1=>$child1){ echo$name1.
;//获取子节点 foreach($child1->childs()作为$name2=>$child2){ 回显$name2。“
”; } //…等等…取决于节点树的深度 } }
可以使用xpath获取所需内容。这很简单,您可以使用它构建查询。试着这样做:

                $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
                    }

                }
                $result=$xml->xpath($your_query);
                foreach($result as $bla) {
                    echo "$bla<br />";
                    }
$result=$xml->xpath(\u查询);
foreach(结果为$bla){
回声“$bla
”; }
您可以使用此CD目录测试代码:


下面是一些使用xpath的示例:

看看我写的这篇文章-+1是一个很好的答案,但是-1是推荐W3学校的。我会给你一个+1的整体,但请注意,w3schools并不是一个特别好的资源。阅读更多关于这方面的内容。