HTML — PHP DOMXPath дает пустую строку для / @ 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, он возвращает идентификатор «orderTableSorted: orderTable:10: j_id504 «, который мне нужно найти.

Любая помощь в правильном направлении очень ценится.

0

Решение

XPath — это регистрозависимый язык. Следовательно, id а также ID это совершенно разные вещи. В вашем примере HTML a элементы имеют атрибут id, но никто не называется ID, Вот почему запрос не дает никаких результатов.

Строчные ID в самом конце вашего пути выражения:

//a[contains(@id,':j_id504')]/@id

Я сомневаюсь, что Firebug возвращает заглавные буквы ID когда в реальном HTML нет ни одного.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]