使用php使用命名空间定位XML

时间:2013-09-25 13:54:29

标签: php xml xpath

我是XML的新手,我很难抓住MarketRent。我正在尝试使用特定ID定位所有ILS_Unit并获取MarketRent nodeValue。但是有一个命名空间,我注册了,但是我收到一个空白页面。

我的PHP代码:

<?php
$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;
$doc->load('http://mdoerrdev.com/xml/updates-mits.xml');

$xpath = new DOMXPath($doc);
$xpath->registerNamespace('MITS', "http://mdoerrdev.com/xml/updates-mits.xml");

$unitPrice = $xpath->evaluate("//ILS_Unit[@FloorplanId='550584']/Unit/MITS:Information/MITS:MarketRent");
    foreach($unitPrice as $up)  {
        var_dump($up);
    };
?>

输入XML:

输入XML太大,您可以在此处找到它:http://mdoerrdev.com/xml/updates-mits.xml

1 个答案:

答案 0 :(得分:1)

如果您注册命名空间,请确保URI与XML中的URI匹配,请更改:

 $xpath->registerNamespace('MITS', "http://mdoerrdev.com/xml/updates-mits.xml");

 $xpath->registerNamespace('MITS', "http://www.mitsproject.org/namespace");