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を試してみると機能しません。常に1つのタグのみを書き戻します。

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 に答える