Как я могу изменить имя элемента в DOM?

Вы можете использовать приведенное ниже, чтобы получить желаемый результат:

ЛЕГКИЙ МЕТОД

SELECT TOP 1 c.year 

FROM coach AS c INNER JOIN team AS t ON c.team = t.team AND c.year = t.year

WHERE t.worldcupwin = 'Y'

ORDER BY c.wins DESC;
7
задан Community 23 May 2017 в 12:00
поделиться

1 ответ

Не могли бы вы использовать importNode () для копирования дочерних узлов вашего элемента во вновь созданный element?

function changeName($node, $name) {
    $newnode = $node->ownerDocument->createElement($name);
    foreach ($node->childNodes as $child){
        $child = $node->ownerDocument->importNode($child, true);
        $newnode->appendChild($child, true);
    }
    foreach ($node->attributes as $attrName => $attrNode) {
        $newnode->setAttribute($attrName, $attrNode);
    }
    $newnode->ownerDocument->replaceChild($newnode, $node);
    return $newnode;
}

$domElement = changeName($domElement, 'person');

Возможно, что-то подобное сработает, или вы можете попробовать использовать cloneChild () .

Редактировать: На самом деле, я только что понял, что исходная функция потеряет расположение узла. В соответствии с вопросом, с которым связан thomasrutter, следует использовать replaceChild () .

13
ответ дан 6 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: