PHP には XML からデータを取得する方法がたくさんあることは知っていますが、最も便利なのは正規表現を使用することですが、DOM メソッドを使用する場合はどうすればよいでしょうか?
百度で調べたのですがよく分かりません神様に教えて下さい。 例:
20110524値>
13.82 値>
<アイテムID="8"><値>/値>
<アイテムID="9"> ;値>13.79値>
<アイテムID="11"><値>>
レコード> ;レコード>20110525値>
13.82値>
アイテム>
<アイテムID="8"><値>
アイテム><アイテムID="9"><値> /Value>
現在最初のものを実行しています:
preg_match_all( "/
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');
問題ありません
<?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
公式サイトの情報を見て、その後のコードも見たところ、データが持ち出せることが分かりました。しかし、まだ問題が残っています。つまり、最初に述べた値を抽出するための ID の使用に関して、結果の配列は値を取得できません。
(printr_r($ t))の結果:
ray(
[0] =&gt; simplexmlementオブジェクト
)=&gt; 、
echo $t -> Value
を使用していますが、データを取得できません。
XML配列について少し分からないのでアドバイスをお願いします。