相关疑难解决方法(0)

C#XmlDocument节点

我正在尝试访问UPS跟踪信息,并且根据他们的示例,我需要构建一个这样的请求:

<?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>
Run Code Online (Sandbox Code Playgroud)

我在使用C#中的1个XmlDocument创建此问题时遇到问题.当我尝试添加第二个时: <?xml version="1.0" ?> or the <TrackRequest> 它会抛出一个错误:

System.InvalidOperationException:此文档已有"DocumentElement"节点.

我猜这是因为标准的XmlDocument只有1个根节点.有任何想法吗?

到目前为止,我的代码是:

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); …
Run Code Online (Sandbox Code Playgroud)

c# xml xmldocument

3
推荐指数
1
解决办法
4221
查看次数

标签 统计

c# ×1

xml ×1

xmldocument ×1