Я должен изменить «неизвестное» содержимое XML.Структура и сам контент действительны.Таким образом, оригинал
<blabla foo="bar">
<aa>asas</aa>
<ff>
<cc>
<dd />
</cc>
</ff>
<gg attr2="2">
</gg>
...
...
</blabla>
становится
<blabla foo="bar">
<magic>
<aa>asas</aa>
<ff>
<cc>
<dd />
</cc>
</ff>
<gg attr2="2">
</gg>
...
...
</magic>
</blabla>
, добавляя дочерний элемент прямо под корневым узлом документа (document.documentElement) и «выталкивая» «исходные» дочерние элементы под ним.Здесь это должно быть сделано в простом javascript (ecmascript).
Идея теперь состоит в том, чтобы
// Get the root node
RootNode = mymagicdoc.documentElement;
// Create new magic element (that will contain contents of original root node)
var magicContainer = mymagicdoc.createElement("magic");
// Copy all root node children (and their sub tree - deep copy) to magic node
/* ????? here
RootNodeClone = RootNode.cloneNode(true);
RootNodeClone.childNodes......
*/
// Remove all children from root node
while(RootNode.hasChildNodes()) RootNode.removeChild(RootNode.firstChild);
// Now when root node is empty add the magicContainer
// node in it that contains all the children of original root node
RootNode.appendChild(magicContainer);
Как это сделать / * * / step?Или, может быть, у кого-то есть гораздо лучшее решение для достижения желаемого результата в целом?
Заранее спасибо!
Ответ: Решение maerics работает отлично.