dql123000 2013-12-18 10:26
浏览 82

如何使用DOMXPath从php中的xml文件获取XML Element Attribute的值

here is simple XML File and i need to get the value of unitCode and i am using DOMXPath object to get the values.

<cbc:ConsumerUnitQuantity unitCode="BX">
    80.000
</cbc:ConsumerUnitQuantity>

i have tried

$unitCode = $xpath->query('//cbc:ConsumerUnitQuantity [@unitCode=""]')->item(0);
  • 写回答

1条回答

  • dongyao2001 2013-12-18 11:12
    关注

    You're missing the namespace. You XML elements have a namespace prefix, but you did not register one on the Xpath object. Check you document for a xmlns:cbc attribute.

    $xml = <<<'XML'
    <cbc:ConsumerUnitQuantity xmlns:cbc="your-namespace" unitCode="BX">
        80.000
    </cbc:ConsumerUnitQuantity>
    XML;
    
    $dom = new DOMDocument();
    $dom->loadXml($xml);
    
    $xpath = new DOMXpath($dom);
    $xpath->registerNamespace('ns-cbc', 'your-namespace');
    
    var_dump(
      $xpath->evaluate('string(//ns-cbc:ConsumerUnitQuantity)', NULL, FALSE)
    );
    

    Unlike DOMXpath::query(), DOMXpath::evaluate() can return scalar values directly.

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!