欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

正则表达式 获取xml中的数据解决办法

程序员文章站 2024-01-28 18:22:58
...

正则表达式 获取xml中的数据 Record ItemId="1"Value20110524/Value /Item ItemId="7"Value13.82/Value /Item ItemId="8"Value13.94/Value /Item ItemId="9"Value13.79/Value /Item ItemId="11"Value13.85/Value /Item /Record RecordItemId="1"Value20110525

正则表达式 获取xml中的数据

20110524

13.82

13.94

13.79

13.85


20110525

13.82

13.86

13.58

13.60



这是xml的文件部分内容,就是从里面一个一个的取出value标签后面的值,最好还能得知有几个record。
就是可以应用到自己定义的函数里面,比如
function value($a,$b,$c,$d,$n){
.......
}
for(i=1;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)
------解决思路----------------------
php 提供了专用方法
$s =

20110524

13.82

13.94

13.79

13.85


20110525

13.82

13.86

13.58

13.60


XML;

$x = simplexml_load_string("$s");
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('/(.+?)/is',$str,$m);
echo $count;

preg_match_all('/(.+?)/is',$str,$values);
echo "
";
print_r($values[1]);
echo "";
/*
2
Array
(
[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
)
*/