関数内に次の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 テーブルに書き込まれるものではありません。これが 2 番目の問題です。コンソール ログでは、未定義または [オブジェクト オブジェクト] として表示されます。(変更された) テキストを表示できますが、明らかに xml 構造を適切に参照していません。これらのそれぞれで何が間違っていますか?