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.

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?