如何在xPath中获取以下节点名称

时间:2015-05-04 08:49:04

标签: php xml xpath

我想在xPath函数中获取以下节点的名称。

我的XML(示例):

<TEXT>
    <TITLE>AAA</TITLE>
    <SUB_TITLE>SUB</SUB_TITLE>
    <SUB_TITLE>SUB</SUB_TITLE>
    <SUB_TITLE2>SUB2</SUB_TITLE2>

    <TITLE>BBB</TITLE
    ...
</TEXT>

在我的数据库中,SUB_TITLE和SUB_TITLE2在TITLE表中链接。但是,在XML文件中,它们没有链接。这些只是节点之后的节点......

我尝试编写类似的PHP函数:

function get_next(SimpleXMLElement $node)
    return $node->xpath('following::*name()');

为了得到以下节点的名称,然后,我可以编写一个循环来分组我的TITLE。

while (get_next($param)!='TITLE')
    // operation

那么,如何在我的参数之后得到节点的所有名称?

1 个答案:

答案 0 :(得分:0)

据我所知,xpath()函数只能返回节点。您可以使用getName()函数来获取节点名称,例如:

function get_next(SimpleXMLElement $node){
    $result = [];
    foreach($node->xpath('following-sibling::*') as $sibling){
        $result[] = $sibling->getName();
    }
    return $result;
}