ホームページ >バックエンド開発 >PHPチュートリアル >XML内のデータを取得するための正規表現

XML内のデータを取得するための正規表現

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


3ac51a85746cc73dac889db7bda84f4c20110524cb8e0afa29105ae9463e55473c96400f
9f927eff0ccc36c4f92d9c712834157f2a12cc85bc2d6ead78baa7096b03a4a3値>

値>
13.79cb8e0afa29105ae9463e55473c96400f
4d01e8c7e954c797092d3add5e3753179f71ebfedd6c8fe81403a8567b4cf72c 3ac51a85746cc73dac889db7bda84f4c2a12cc85bc2d6ead78baa7096b03a4a320110525cb8e0afa29105ae9463e55473c96400f
9f927eff0ccc36c4f92d9c712834157f2a12cc85bc2d6ead78baa7096b03a4a3cb8e0afa29105ae9463e55473c96400f
82bffb67e6da752b6af9fce1063a70f813.86cb8e0afa29105ae9463e55473c96400f

7d5cfa523801dfba0a72a055b4f15a88e014ece7d12df732a4e3dd019e3e87f3
09073e174b952eabc4abd78dd75aedf5

これは 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 人のマスターに感謝します。あなたの方法に従って問題は解決されました ~~ ふふ

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