使用正则表达式从xml获取货币值

I need get value of some currency like USD by it's code 'USD' or id 'R01235'

I try next, but it's not so correct

<?php
$pattern = 'USD.*(\\d{2},\\d{4})';
$subject = '<Valute ID="R01215"> 
<NumCode>208</NumCode> 
<CharCode>DKK</CharCode> 
<Nominal>10</Nominal> 
<Name>Danish kroner</Name> 
<Value>57,4385</Value> 
</Valute> 
<Valute ID="R01235"> 
<NumCode>840</NumCode> 
<CharCode>USD</CharCode> 
<Nominal>1</Nominal> 
<Name>U.S. dollar</Name> 
<Value>33,2247</Value> 
</Valute> 
<Valute ID="R01239"> 
<NumCode>978</NumCode> 
<CharCode>EUR</CharCode> 
<Nominal>1</Nominal> 
<Name>Euro</Name> 
<Value>42,8399</Value> 
</Valute>';
$result = preg_match( $pattern, $subject , $matches );
echo $result;
print_r($matches);
?>

Do some simple XML parsing instead.

$simplexml = new SimpleXMLElement("<root>$xml</root>");
foreach ($simplexml->Valute as $valute) {
    if ("$valute->CharCode" == 'USD') {
        $result = "$valute->Value";
    }
}