使用Xpath在DOMNodes上迭代。

问题描述 投票:1回答:1

我试图用这个8年前的帖子中的方法从一些html中提取选项标签的内容。用PHP解析HTML获取所有选项标签的方法唯一不同的是,我把html作为一个字符串,而不是一个文件,所以我的测试程序做了适当的修改。

$html = "<select name='test'><option value='1'>opt1</option><option value='2'>opt1</option><option   value='3'>opt1</option></select>"; 
    $doc = new DOMDocument();
    $doc->loadXML($html);
    $xpath = new DOMXpath($doc);        # parse out each option

    // parse the options
    $options = $xpath->query("*/select[1]/option");
    var_dump ($options);

    foreach ($options as $option) {
        $optionContent = $option->textContent;
        echo ($optionContent);
    }

查询似乎是有效的 -- var_dump的输出是:

object(DOMNodeList)[3]

然而,我没有得到任何选项内容,而且似乎没有执行任何 "foreach "循环。感谢任何帮助。

php foreach domxpath
1个回答
0
投票

试试这个方法,看看是否有效。

$options = $xpath->query("/select//option");
    foreach ($options as $option) {

        echo($option->textContent);

    }
© www.soinside.com 2019 - 2024. All rights reserved.