Я хотел бы изменить сам тег, указанный в QueryPath. Чтобы быть конкретным, я хотел бы преобразовать тег привязки, как это
<a href="abc.html">Example</a>
в
<?php Blah-Blah ?>Example</a>
или же
<?php Blah-Blah2 ?>
Я могу найти тег привязки и получить его элемент:
$qp->find('a[href]'); $href = $qp->attr('href');
но есть ли способ изменить / заменить сам тег в QueryPath?
Кроме того, я могу обернуть компонент с <div id="specific">
тег — если это возможно, я думаю, что я могу найти его с $qp->top('div[id="specific"]');
затем можно заменить весь дочерний элемент (тег привязки и его элемент) на код php.
Тем не менее, я не смог найти какой-либо путь в QueryPath …
function renameTag( DOMElement $oldTag, $newTagName ) {
$document = $oldTag->ownerDocument;
$newTag = $document->createElement($newTagName);
$oldTag->parentNode->replaceChild($newTag, $oldTag);
foreach ($oldTag->attributes as $attribute) {
$newTag->setAttribute($attribute->name, $attribute->value);
}
foreach (iterator_to_array($oldTag->childNodes) as $child) {
$newTag->appendChild($oldTag->removeChild($child));
}
return $newTag;
}
а также
$qp->find('a[href]')->each(function($index,$element){
renameTag($element,'?php');
});
Вы должны выполнить итерацию для всех элементов в запросе …
Других решений пока нет …