私は情報を追跡するアクセスUPSにしようとしていると、彼らの例のように、私はそうのような要求を構築する必要があります:C#のXmlDocumentノード
<?xml version="1.0" ?>
<AccessRequest xml:lang='en-US'>
<AccessLicenseNumber>YOURACCESSLICENSENUMBER</AccessLicenseNumber>
<UserId>YOURUSERID</UserId>
<Password>YOURPASSWORD</Password>
</AccessRequest>
<?xml version="1.0" ?>
<TrackRequest>
<Request>
<TransactionReference>
<CustomerContext>guidlikesubstance</CustomerContext>
</TransactionReference>
<RequestAction>Track</RequestAction>
</Request>
<TrackingNumber>1Z9999999999999999</TrackingNumber>
</TrackRequest>
私は中1つのXmlDocumentでこれを作成する問題を抱えていますC#。私は2番目を追加しようとすると: <?xml version="1.0" ?> or the <TrackRequest>
それはエラーがスローされます。
System.InvalidOperationException: This document already has a 'DocumentElement' node.
私はこれを推測している標準のXmlDocumentのみ1つのルートノードを持ってしまうためです。何か案は?これまで
はHERESに私のコード:
XmlDocument xmlDoc = new XmlDocument();
XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
XmlElement rootNode = xmlDoc.CreateElement("AccessRequest");
rootNode.SetAttribute("xml:lang", "en-US");
xmlDoc.InsertBefore(xmlDeclaration, xmlDoc.DocumentElement);
xmlDoc.AppendChild(rootNode);
XmlElement licenseNode = xmlDoc.CreateElement("AccessLicenseNumber");
XmlElement userIDNode = xmlDoc.CreateElement("UserId");
XmlElement passwordNode = xmlDoc.CreateElement("Password");
XmlText licenseText = xmlDoc.CreateTextNode("mylicense");
XmlText userIDText = xmlDoc.CreateTextNode("myusername");
XmlText passwordText = xmlDoc.CreateTextNode("mypassword");
rootNode.AppendChild(licenseNode);
rootNode.AppendChild(userIDNode);
rootNode.AppendChild(passwordNode);
licenseNode.AppendChild(licenseText);
userIDNode.AppendChild(userIDText);
passwordNode.AppendChild(passwordText);
XmlElement rootNode2 = xmlDoc.CreateElement("TrackRequest");
xmlDoc.AppendChild(rootNode2);
エラーが発生した場所にコードを掲載したい場合があります。そうでなければ、私たちは電話で質問された自動車技術者のようなものです:「私の車は始まりません。何が問題なのですか? – Cyberherbalist
また、提供されているこの例は1回のリクエストであることを確認してください。それは、2つの異なるタイプのリクエストによく似ています。 最初はアクセスを要求し、2番目は追跡情報を要求します。 –
これはまさにその例です。従来のASPと同様のものを使用し、両方のXMLリクエストはMsxml2.ServerXMLHTTPオブジェクトを介して同時に送信されます。 –