0

我在函数中有以下 jQuery 代码。

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 表的数据。这是第二个问题。在控制台日志中,它显示为未定义或 [object Object]。我可以显示(更改的)文本,但我显然没有正确引用 xml 结构。我在这些方面做错了什么?

4

1 回答 1

1

利用

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

代替

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

(其他部分类似)。$msgXML.children(0)似乎指的XMLInput是从 xml 文档节点开始时合乎逻辑的元素。

于 2013-05-14T19:38:14.627 回答