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

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

WBOY
リリース: 2016-06-23 13:25:45
オリジナル
837 人が閲覧しました

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

20110524値>
13.82
<アイテムID="8"><値>/値>
<アイテムID="9"> ;値>13.79
<アイテムID="11"><値>>
;レコード>20110525値>
13.82値>

<アイテムID="8"><値>
<アイテムID="9"><値> /Value>

13.60 id 属性から対応する値を取得するにはどうすればよいですか?
現在最初のものを実行しています:
preg_match_all( "/(.*?)/", $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 を使用してドキュメントを処理したいのですが、なぜできません。データを取り出しますか?
コードは次のとおりです:
$xml = simplexml_load_file('6.xml');

foreach( $xml->Item 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配列について少し分からないのでアドバイスをお願いします。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート