Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php DOMDocument XPath查询以获取类名和标记值_Php_Xpath_Domdocument_Xpathquery - Fatal编程技术网

Php DOMDocument XPath查询以获取类名和标记值

Php DOMDocument XPath查询以获取类名和标记值,php,xpath,domdocument,xpathquery,Php,Xpath,Domdocument,Xpathquery,我有这个示例代码,它将提取每个标记的值。 除此之外,还要得到该标记的类名 <?php $doc = new DOMDocument; $doc->loadxml( <<< eox <tr class="calendar_row" data-eventid="42023"> <td class="date"/> <td class="time">All Day</td> <td class=

我有这个示例代码,它将提取每个标记的值。 除此之外,还要得到该标记的类名

<?php
$doc = new DOMDocument;
$doc->loadxml( <<< eox
<tr class="calendar_row" data-eventid="42023">
    <td class="date"/>
    <td class="time">All Day</td>
    <td class="currency">CAD</td>
    <td class="impact">
        <span title="Non-Economic" class="holiday"/>
    </td>
    <td class="event">
        <span>Bank Holiday</span>
    </td>
    <td class="detail">
        <a class="calendar_detail level1" data-level="1" title="Open Detail"/>
    </td>
    <td class="actual"/>
    <td class="forecast"/>
    <td class="previous"/>
    <td class="graph"/>
</tr>
eox
);
$xpath = new DOMXPath($doc);

foreach( $xpath->query('//tr[@data-eventid="42023"]/td[@class]') as $n ) {
    echo $n->nodeName.'-'.$n->nodeValue."<br />";
}
?>
而不是:

date-
time-All Day
currency-CAD
impact- 
event-Bank Holiday 
detail- 
actual-
forecast-
previous-
graph-

您不应该执行
$n->nodeName
而是执行
$n->getAttribute('class')


演示:

你应该做这个
$n->getAttribute('class')
而不是做
$n->nodeName

演示:

echo$n->getAttribute(“类”)。-$n->nodeValue。“
”;
echo$n->getAttribute(“类”)。-”$n->nodeValue。“
”;
date-
time-All Day
currency-CAD
impact- 
event-Bank Holiday 
detail- 
actual-
forecast-
previous-
graph-
echo $n->getAttribute("class") . '-' . $n->nodeValue . "<br />";