使用regex从xml中获取货币值


get currency value from xml using regex

我需要通过代码"USD"或id"R01235"来获取某些货币(如USD)的价值

我下一步尝试,但不太正确

<?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);
?>

做一些简单的XML解析。

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