2012-02-28 3 views
0

У меня вопрос: я получаю XML-код Javascript. Я хочу добавить узел «отец» в этот xml. Как это сделать?Добавить XML-документ как дочерний на другой узел в Javascript

/* Load the XML text from the text area to a Javascript XML object */ 
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
xmlDoc.async = "false"; 
xmlDoc.loadXML(taData.innerText); 
xmlObj = xmlDoc.documentElement;   

/* Creating the Screen node */ 
var Screen = document.createElement("Screen"); 
Screen.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
Screen.setAttribute("xsi:noNamespaceSchemaLocation", "../../GUIGenerator_V2/Scheme/GG_Scheme.xsd"); 

/* Creating the Legend node */ 
var Legend = document.createElement("Legend"); 
Legend.setAttribute("EntityType", "Request"); 

var ImportedNode = document.adopteNode(xmlDoc.documentElement); 
Legend.appendChild(ImportedNode); 
Screen.appendChild(Legend); 

Легенда - это ребенок экрана, и я хочу, чтобы xmlDoc был ребенком легенд.

Я попытался написать: Legend.appendChild (xmlDoc.documentElement); , но ошибка. В чем проблема?

+0

Не могли бы вы предоставить пример кода? Вы уже разобрали XML в XMLDocument? Что именно вы хотите сделать? –

+0

Добавлен пример кода. – user1176926

+0

Это не имеет смысла для меня ... документ не может быть дочерним узлом узла. Либо вы добавляете корень документа в качестве дочернего, либо сериализуете документ и устанавливаете его как содержимое «Легенда» (в виде строки). –

ответ

1

В некотором случае XML является ссылкой как DOM внутри JavaScript, поэтому вы можете использовать на нем стандартные функции DOM. Обратите внимание, о навигаторе конкретной реализации, чтобы избежать проблем с совместимостью ...

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

/* Load the XML text from the text area to a Javascript XML object */ 
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async = "false"; 
    xmlDoc.loadXML(taData.innerText); 
    xmlObj = xmlDoc.documentElement;   

    /* Creating the Screen node */ 
    var Screen = document.createElement("Screen"); 
    Screen.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
    Screen.setAttribute("xsi:noNamespaceSchemaLocation", "../../GUIGenerator_V2/Scheme/GG_Scheme.xsd"); 

    /* Creating the Legend node */ 
    var Legend = document.createElement("Legend"); 
    Legend.setAttribute("EntityType", "Request"); 

    var ImportedNode = document.adopteNode(xmlDoc.documentElement);  
    Legend.appendChild(ImportedNode); 
    Screen.appendChild(Legend); 

после выполнения этого кода вы получите документ strucured как:

<fathernode> 
    <YOURXMLDOCUMENT /> 
</fathernode> 
+0

Я попытался написать: Legend.appendChild (xmlDoc.documentElement); – user1176926

+0

Но я получаю сообщение об ошибке, так что, похоже, проблема? – user1176926

+0

какая у вас ошибка? – shulard

Смежные вопросы