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

正则表达式 获取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的文件部分内容,就是从里面一个一个的取出value标签后面的值,最好还能得知有几个record。
就是可以应用到自己定义的函数里面,比如
function value($a,$b,$c,$d,$n){
.......
}
for(i=1;i<(Record个数);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 =<<< 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>";
print_r($values[1]);
echo "</pre>";
/*
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
)
*/