dongzhouji4021 2013-07-06 23:30
浏览 47
已采纳

使用正则表达式从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);
?>
  • 写回答

1条回答 默认 最新

  • dstk51319 2013-07-06 23:35
    关注

    Do some simple XML parsing instead.

    $simplexml = new SimpleXMLElement("<root>$xml</root>");
    foreach ($simplexml->Valute as $valute) {
        if ("$valute->CharCode" == 'USD') {
            $result = "$valute->Value";
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号