2013-05-14 43 views
0

我有以下jQuery代碼在函數中。jQuery - 更改XML並將其傳遞(更改)爲函數

var msgXML = "<XMLInput><Source></Source><MessageText></MessageText><SendTime></SendTime><Destination></Destination><NotUsed></NotUsed></XMLInput>", 
msgXMLDoc = $.parseXML(msgXML), 
$msgXML = $(msgXMLDoc), 
$msgSource = $msgXML.find("Source"), 
$msgText = $msgXML.find("MessageText"), 
$msgSTime = $msgXML.find("SendTime"), 
$msgDest = $msgXML.find("Destination"); 

在這個函數中,我需要做一些修改中的每個XML節點,並在完成時,通過改變XML爲Ajax調用,這將採取XML作爲輸入的SQL存儲過程。

在下面的代碼,我可以追加的XML值

$msgXML.children(0).append($msgSource.text(mySource)); 
$msgXML.children(0).append($msgText.text(myMsg)); 
$msgXML.children(0).append($msgSTime.text(currTimeString)); 
$msgXML.children(0).append($msgDest.text(myDest)); 

,但它改變了XML結構(我不設置字段<NotUsed></NotUsed>但必須通過它)和洗牌周圍的XML。這是我的第一個問題/問題。

期望結構是:

<XMLInput> 
<Source></Source> 
<MessageText></MessageText> 
<SendTime></SendTime> 
<Destination></Destination> 
<NotUsed></NotUsed> 
</XMLInput> 

使用上述追加出現改變的節點的值,如果我把它在控制檯日誌:

console.log("Out = " + $msgXML.find("Source").text()); 

然而,這是數據傳遞的不是寫入SQL表的內容。這是第二個問題。在控制檯日誌中,它顯示爲undefined或[object Object]。我可以顯示(更改)文本,但我顯然沒有正確引用xml結構。我在做什麼錯在每個這些?使用的

回答

1

$msgXML.find("Source").append(mySource); 

代替

$msgXML.children(0).append($msgSource.text(mySource)); 

(類似地對於其它部分)。 $msgXML.children(0)似乎指的是XMLInput元素,這在您開始使用xml文檔節點時是合乎邏輯的。

+0

謝謝你的幫助。我能夠通過完成你所說的工作來獲得它的工作,並最終獲得了我從$ msgXML.children(0).get(0).outerHTML所需的原始XML以傳遞給另一個函數。 –