[英]PHP DOMXPath gives empty string for /@ID
简体HTML
<tr>
<td class="orderOverviewAnotherColumn">0177-4066356</td>
<a name="orderTableSorted:orderTable:10:j_id504" id="orderTableSorted:orderTable:10:j_id504" href="#">
</tr>
<tr>
<td class="orderOverviewAnotherColumn">0177-4066357</td>
<a name="orderTableSorted:orderTable:11:j_id504" id="orderTableSorted:orderTable:11:j_id504" href="#">
</tr>
<tr>
<td class="orderOverviewAnotherColumn">0177-4066358</td>
<a name="orderTableSorted:orderTable:12:j_id504" id="orderTableSorted:orderTable:12:j_id504" href="#">
</tr>
<tr>
<td class="orderOverviewAnotherColumn">0177-4066359</td>
<a name="orderTableSorted:orderTable:13:j_id504" id="orderTableSorted:orderTable:13:j_id504" href="#">
</tr>
在PHP中使用以下代码
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTMLFile('448713409.html');
$xpath = new DOMXPath($doc);
$vRes = $xpath->query(".//*[@id='orderTableSorted:orderTable:tbody_element']/tr[contains(.,'4066356')]//a[contains(@id,':j_id504')]/@ID");
foreach ($vRes as $obj) {
$clean[] = $obj->nodeValue;
}
$clink = implode(" ",$clean);
var_dump($clink);
返回...
string(0) ""
使用Firebug Xpath Checker,它返回我需要查找的ID“ orderTableSorted:orderTable: 10 :j_id504”。
朝正确方向提供的任何帮助都将受到赞赏。
XPath是区分大小写的语言。 因此, id
和ID
是完全不同的东西。 在您的HTML示例中, a
元素具有属性id
,但是没有一个称为ID
。 这就是查询不产生任何结果的原因。
在路径表达式末尾的小写ID
:
//a[contains(@id,':j_id504')]/@id
我怀疑Firebug在实际HTML中没有大写ID
时会返回大写ID
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.