我是list
我希望value(innertext)
使用td
xpath
<td align="center" valign="middle" height="14" width="14" background="/images/arrows/green1.gif" class="MENU_month2"><span class="CALENDAR_CELL">13</span></td>
13
我想使用xPath
$elements = $xpath->query('//td[contains(@background, "/images/arrows/green1.gif")]');
echo trim(strip_tags($functions->GetHTMLFromDom($elements)));
到目前为止,我已经尝试了这一点,但一无所获
functions class
并在 public function GetHTMLFromDom($domNodeList){
$domDocument = new DOMDocument();
foreach ($domNodeList as $node) {
$domDocument->appendChild($domDocument->importNode($node, true));
$domDocument->appendChild($domDocument->createTextNode(" "));
}
return $domDocument->saveHTML();
}
里面我有这个功能
background
我希望仅在{{1}}的基础上获得此值。
感谢。
答案 0 :(得分:2)
如果它包含多个<td>
,请尝试循环播放。例如:
$elements = $xpath->query('//td[contains(@background, "/images/arrows/green1.gif")]');
if($elements->length > 0) {
// if it exists
foreach($elements as $td) { // then foreach td
// get the node value of inside the span
echo $xpath->query('./span', $td)->item(0)->nodeValue; // 13
}
}
答案 1 :(得分:2)
我只做的更改是将/span
添加到查询中,例如
$elements = $xpath->query('//td[contains(@background, "/images/arrows/green1.gif")]/span');
foreach ($elements as $span) {
echo $span->nodeValue, PHP_EOL;
}
在这里演示〜https://eval.in/185108
鉴于你的代码编辑,这就是你要追求的吗?
$elements = $xpath->query('//td[contains(@background, "/images/arrows/green1.gif")]/span/text()');
在这里,我直接在XPath查询中直接在<span>
中选择<td>
的文本内容。
使用大量<td>
个节点〜https://eval.in/185113