Php 清除类名中有空格的标记

Php 清除类名中有空格的标记,php,curl,dom,web-scraping,Php,Curl,Dom,Web Scraping,在这里,我有一个带有类名的html div标记,其中有空格 <div data-marker="music-track-title" class="music-track__title text--single-line size-e"> No Vanguard Revival (Radio 1 Session, 16 May 2018) </div> 无先锋复兴(电台1期,2018年5月16日) 我尝试使用php curl和dom帮助从这个标记中获取信息,但它什么也

在这里,我有一个带有类名的html div标记,其中有空格

<div data-marker="music-track-title" class="music-track__title text--single-line size-e"> No Vanguard Revival (Radio 1 Session, 16 May 2018) </div>
无先锋复兴(电台1期,2018年5月16日)
我尝试使用php curl和dom帮助从这个标记中获取信息,但它什么也不返回

以下是我迄今为止编写的代码:(不工作)


如何从类名中带有空格的div标记中获取信息。使用php curl、Dom。

您应该尝试以下方法:

$finder = new DomXPath($dom);
$classname="music-track__title";
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");
$node = null;
foreach ($nodes as $element) {
    if ($element->getAttribute('class') == "music-track__title text--single-line size-e") {
        $node = $element;
        break;
    }
}

变量
$elements
将包含在类名中有空格的标记列表。

是否只有一个div标记在类名中有空格?或者可能还有更多。我刚刚发布了更多的示例。所以需要获取所有在类名中有空格的标记吗?还有更多,但现在我的目标是从中获取信息。您不需要行
$dom=new DOMDocument()如果您使用simplehtmldom。我不认为目的是在class属性中查找带空格的标记,他们只想查找一个实际上有2个特定类的标记。是的,Nigel注释是正确的。
$finder = new DomXPath($dom);
$classname="music-track__title";
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");
$node = null;
foreach ($nodes as $element) {
    if ($element->getAttribute('class') == "music-track__title text--single-line size-e") {
        $node = $element;
        break;
    }
}