微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – XPATH获取当前节点的属性

无法在PHP获取当前节点的属性并根据该属性创建条件…

示例XML

<div class='parent'>
    <div class='title'>A Title</div>
    <div class='child'>some text</div>
    <div class='child'>some text</div>
    <div class='title'>A Title</div>
    <div class='child'>some text</div>
    <div class='child'>some text</div>
</div>

我想要做的是在PHP中遍历XML并根据元素/节点的类做不同的事情

例如.

$doc->loadHTML($xml_string);
$xpath = new DOMXpath($doc);
$nodeLIST = $xpath->query("//div[@class='parent']/div");
foreach ($nodeLIST as $node) {
    if (CURRENT DIV NODE ATTRIBUTE EQUALS TITLE) {
        SET $TITLE VARIABLE TO THE TEXT() OF THE CURRENT NODE
    }
    ELSEIF(CURRENT DIV NODE ATTRIBUTE EQUALS CHILD){
        SET $CHILD VARIABLE TO THE TEXT() OF THE CURRENT NODE
    }
}

我尝试了以下各种各样的事情……

if ($xpath->query("./[@class='title']/text()",$node)->length > 0) { }

但我一直得到的是PHP错误,说我的XPATH语法无效.谁能帮我?

解决方法:

您可以使用getAttribute()方法实现此目的.例:

foreach($nodeLIST as $node) {
    $attribute = $node->getAttribute('class');
    if($attribute == 'title') {
        // do something
    } elseif ($attribute == 'child') {
        // do something
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐