ホームページ >バックエンド開発 >PHPチュートリアル >PHPを介してXMLデータを抽出する際の問題

PHPを介してXMLデータを抽出する際の問題

WBOY
WBOYオリジナル
2016-06-23 13:25:45838ブラウズ

PHP には XML からデータを取得する方法がたくさんあることは知っていますが、最も便利なのは正規表現を使用することですが、DOM メソッドを使用する場合はどうすればよいでしょうか?
百度で調べたのですがよく分かりません神様に教えて下さい。 例:

20110524値>
13.82 cb8e0afa29105ae9463e55473c96400f
9d1cc240dc1541ac3328f721d5dd10c42a12cc85bc2d6ead78baa7096b03a4a3/値>
9f277a99d996bf85f76cb316e6c2fad7 ;値>13.79cb8e0afa29105ae9463e55473c96400f
c0859a6f2cc2c5802f803f06a13f8b5c67b7d0ce94f12436c1a365939130400f
9f71ebfedd6c8fe81403a8567b4cf72c ;レコード>20110525値>
13.82値>
5f71d47c48e69338ac457f65b7b21814
9d1cc240dc1541ac3328f721d5dd10c42a12cc85bc2d6ead78baa7096b03a4a3
5f71d47c48e69338ac457f65b7b218149f277a99d996bf85f76cb316e6c2fad72a12cc85bc2d6ead78baa7096b03a4a3 /Value>
09073e174b952eabc4abd78dd75aedf5
7d5cfa523801dfba0a72a055b4f15a88e014ece7d12df732a4e3dd019e3e87f313.60 id 属性から対応する値を取得するにはどうすればよいですか?
現在最初のものを実行しています:
preg_match_all( "/e014ece7d12df732a4e3dd019e3e87f3(.*?)fc270db6b7c3b1cf107e6ade50d25b3e/", $Result, $array );
2 つ目:
$doc = new DOMDocument();
$doc->load('sixx.xml'); // XML ファイルを読み込みます
$Results = $doc->getElementsByTagName( "Record" ); $ Result){
$Records = $Result->getElementsByTagName("Item");
$times = $Records->item(0)->nodeValue;
アイテムを見つけて操作を続行します
ID は使用できません。XML ID を使用してデータを取得し、変更するとどうなるかを知りたいです。
getElementById() を使用して取得しようとしましたが、そのようなメソッドはないと言われました。 。 。
未定義メソッド DOMElement::getElementById() を呼び出します。
この質問に答えるのを手伝ってください、ありがとう。




ディスカッションに返信 (解決策)

$s =<<< XML<root><Record><Item Id="1"><Value>20110524</Value></Item><Item Id="7"><Value>13.82</Value></Item><Item Id="8"><Value>13.94</Value></Item><Item Id="9"><Value>13.79</Value></Item><Item Id="11"><Value>13.85</Value></Item></Record><Record><Item Id="1"><Value>20110525</Value></Item><Item Id="7"><Value>13.82</Value></Item><Item Id="8"><Value>13.86</Value></Item><Item Id="9"><Value>13.58</Value></Item><Item Id="11"><Value>13.60</Value></Item></Record></root>XML;$xml = simplexml_load_string($s);$t = $xml->xpath('//*[@Id="8"]');print_r($t);
Array(    [0] => SimpleXMLElement Object        (            [@attributes] => Array                (                    [Id] => 8                )            [Value] => 13.94        )    [1] => SimpleXMLElement Object        (            [@attributes] => Array                (                    [Id] => 8                )            [Value] => 13.86        ))





これは私の XML ファイルです (ファイル名は 6.xml)。SimpleXML を使用してドキュメントを処理したいのですが、なぜできません。データを取り出しますか?
コードは次のとおりです:
705e8dafcfb348c41fcdafc16eb8c643Item as $a ){

echo $a->Value;
?> ;

演算結果は空です。 。コードに問題はないと思います。 。

問題ありません

<?php$xml = simplexml_load_file('6.xml');foreach( $xml->Item as $a ){     echo $a->Value . '<br>';}
2011052413.8213.9413.7913.852011052513.8213.8613.5813.60


XML を配列に変換するには、simplexml_load_file または simplexml_load_string を使用します。

参考: http://php.net/manual/en/function.simplexml-load-file.php

公式サイトの情報を見て、その後のコードも見たところ、データが持ち出せることが分かりました。しかし、まだ問題が残っています。つまり、最初に述べた値を抽出するための ID の使用に関して、結果の配列は値を取得できません。
(printr_r($ t))の結果:
ray(
[0] =&gt; simplexmlementオブジェクト
)=&gt; 、
echo $t -> Value
を使用していますが、データを取得できません。
XML配列について少し分からないのでアドバイスをお願いします。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。