使用XPath获取节点名称

时间:2012-11-22 12:35:19

标签: php xml xpath simplexml

我有这个XML,并希望在节点“ObjectDetails”中获取第二个元素的名称。 名字是“Koop”

$xml = '
    <ObjectenLijst TimeStamp="17-07-2012 09:14:46" Versie="12">
        <Object>
            <ObjectDetails>
                <Adres>Niebergweg 1</Adres>
                <Koop>
                    <Prijsvoorvoegsel>vraagprijs</Prijsvoorvoegsel>
                    <Koopprijs>31000</Koopprijs>
                    <KoopConditie>kosten koper</KoopConditie>
                </Koop>
            </ObjectDetails>
        </Object>
    <ObjectenLijst>' ;

当我使用此XPath时,将返回一个空数组:

$xml = simplexml_load_string($xml);
$result =  $xml->xpath('name(//Object/ObjectDetails/*[2])');

1 个答案:

答案 0 :(得分:1)

据我所知,SimpleXMLElement::xpath只能返回SimpleXMLElement个节点的数组,所以你要做的就是无效。但是,您可以通过以下方式获取节点名称:

$result =  $xml->xpath('/ObjectenLijst/Object/ObjectDetails/*[2]');
$name = $result[0]->getName(); // Koop