Php Dom兄弟/姐妹节点-正确的方式


Php Dom brother/sister node - proper way

所以我在php中玩domDocs,我正在经历许多节点的结构。当脚本找到它正在寻找的APP_ID时,他需要返回他的兄弟值APP_USER。我在这里没有找到解决方案,只有XPath和jQuery,我发现"避免了"的使用方式。

这很简单在调用foreach之前,放置一个迭代变量,例如$i,然后它将"调用"兄弟的值。

$apps = $root->getElementByTagName( 'APP_ID' );
$i=0
foreach( $apps as $app ) {
    if( $app->item(0)->nodeValue == CONSTANT-ID ) { // just condition
        $user = $root->getElementsByTagName( "APP_USER" );
        echo $user->item($i)->nodeValue;
        // this $i means it returns brother's value
    }
    $i++;
}

你觉得怎么样?

$app开始,您可以使用parentNode上升一级,然后遍历childNodes以找到兄弟APP_USER:

if( $app->nodeValue == CONSTANT-ID ) { // just condition
    foreach ($app->parentNode->childNodes as $child) {
        if ($child->localName == 'APP_USER') {
            echo $child->nodeValue;
        }
    }
}