<アイテム ID="1">20110524値>
<アイテム ID="7"><値>値>
アイテム>
値>
13.79値>
項目>レコード> <アイテム ID="1"><値>20110525値>
<アイテム ID="7"><値>値>
<アイテム ID="8">13.86値>
これは XML ファイルの一部です。 value タグの後ろにある値を 1 つずつ取り出して、レコードの数を把握するのが最善です。
は、
function value($a,$b,$c,$d,$n){
.......
}
for(i=1;i<) など、独自に定義した関数に適用できます。 ;(レコード数); i++){
value($a,$b,$c,$d,$i);
ループ数:
value(13.82,13.94,13.79,13.85, 1)
value(13.82,13.86,13.58,13.60,2) の 2 番目の実装
ディスカッションへの返信 (解決策)
XML データが取得できれば、必ずしも正規表現は必要ありません。機能は使えます内部は大丈夫です。 。皆さん、ありがとうございました!
php は特別なメソッドを提供しています
$s =<<< XML<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>XML;$x = simplexml_load_string("<root>$s</root>");foreach($x->Record as $node) { $t = array(); foreach($node->Item as $v) $t[] = current($v->Value); print_r($t);}
Array( [0] => 20110524 [1] => 13.82 [2] => 13.94 [3] => 13.79 [4] => 13.85)Array( [0] => 20110525 [1] => 13.82 [2] => 13.86 [3] => 13.58 [4] => 13.60)
$count=preg_match_all('/<Record>(.+?)<\/Record>/is',$str,$m);echo $count;preg_match_all('/<Value>(.+?)<\/Value>/is',$str,$values);echo "<pre class="brush:php;toolbar:false">";print_r($values[1]);echo "";/*2Array( [0] => 20110524 [1] => 13.82 [2] => 13.94 [3] => 13.79 [4] => 13.85 [5] => 20110525 [6] => 13.82 [7] => 13.86 [8] => 13.58 [9] => 13.60)*/
上の 2 人のマスターに感謝します。あなたの方法に従って問題は解決されました ~~ ふふ