2013-05-14 44 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以传递给另一个函数。 –