如何在php中的DOM解析器中解析数据并获取空数组

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

我正在尝试使用DOM分析器技术提取一些数据。

我的代码:

<?php
// create new DOMDocument
$document = new \DOMDocument('1.0', 'UTF-8');

// set error level
$internalErrors = libxml_use_internal_errors(true);

$data = '<div id="show">
                        <ul class="browse_in_widget_col">

                                <li>

                                    <a href="accounting/">
                                        Accounting
                                    </a>
                                    <span>

                                (7420)

                                    </span>
                                </li>
                </div>';

$dom = new DOMDocument();
$dom->loadHTML($data, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);

$xp = new DOMXPath($dom);
$makes = $xp->query('//ul[@class="browse_in_widget_col"]/ul');
$makeList = [];
foreach ( $makes as $make ) {
    $makeList[] = $make->textContent;
}


print_r($makeList);
?>

我想在元素<a>标签之间拉出。

示例在这里我需要此元素的会计。我该怎么做?

[帮助我获取a标签中的所有值。现在我得到了空数组

php html dom
1个回答
1
投票

在您的XPath表达式中,您正在寻找一个嵌套的<ul>标记,但没有一个。如果只需要<a>标记的内容,则可以将查询更改为//ul[@class="browse_in_widget_col"]//a

$xp = new DOMXPath($dom);
$makes = $xp->query('//ul[@class="browse_in_widget_col"]//a');
$makeList = [];
foreach ( $makes as $make ) {
    $makeList[] = trim($make->textContent);
}

我还将trim()添加到输出中以删除任何空格。

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