Как изменить сам тег в QueryPath?

Я хотел бы изменить сам тег, указанный в 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 …

1

Решение

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');
});

Вы должны выполнить итерацию для всех элементов в запросе …

3

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

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

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