C# 如何将XML文件传递给该方法?
我有一个服务中的方法具有此签名: 公共字符串submitInvoice(字符串用户名、字符串密码、字符串inXML) 我在C#代码中创建了如下XML:C# 如何将XML文件传递给该方法?,c#,xml,service,C#,Xml,Service,我有一个服务中的方法具有此签名: 公共字符串submitInvoice(字符串用户名、字符串密码、字符串inXML) 我在C#代码中创建了如下XML: protected XmlDocument generateXML() { XmlDocument xmldoc = new XmlDocument(); XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
protected XmlDocument generateXML()
{
XmlDocument xmldoc = new XmlDocument();
XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
xmldoc.AppendChild(xmlnode);
//root element
XmlElement xmlelem = xmldoc.CreateElement("", "Invoices", "");
xmldoc.AppendChild(xmlelem);
//(child of the root)
XmlElement xmlelem2 = xmldoc.CreateElement("", "InvoiceNumber", "");
XmlText xmltext = xmldoc.CreateTextNode("222222");
xmlelem2.AppendChild(xmltext);
xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2);
return xmldoc;
}
在我的计划中,我有:
XmlDocument xml=generateXML()
然后调用该方法:
oResponse=oWscape.subminVoice(sUserName,sPassword,*);
我不确定应该以XML的形式发送什么,它是string类型,但当我尝试使用string时,它给了我一个错误。如何在此处发送XML?您可以通过document元素的OuterXml属性以字符串形式获取XML,如下所示:
submitInvoice("username", "password", xml.DocumentElement.OuterXml);
您遇到了什么错误?@nik您确定
submitInvoice()
的签名是您认为的吗?此外,你应该将澄清信息编辑到你的问题中,而不是分散在评论中。此外,对于错误消息,请用注释指出它们在代码示例中出现的位置。(因为行号可能不匹配。)实际上,您也应该可以使用xml.OuterXml
。不同之处在于,xml.OuterXml
为xml当前引用的任何节点提供标记,而xml.DocumentElement.OuterXml
显式地是根节点。当我使用此选项时,会出现以下错误:无法隐式地将类型字符串转换为“system.xml.xmlnode”,听起来像是将其作为submitInvoice传递(“username”、“password”、xml)
。示例中的xml
变量声明为XmlDocument类型(派生自XmlNode)。OuterXml
属性的类型为string
,这是submitInvoice
方法所期望的。我将其用作:submitInvoice(“用户名”、“密码”),xml.DocumentElement.OuterXml);或者oResponse=oWinscape.submitInvoice(sUserName、sPassword、xml.OuterXml);两者都给出了相同的错误:无法将类型字符串隐式转换为'system.xml.xmlnode'啊哈!我在你早些时候的评论中漏掉了。“无法将类型字符串隐式转换为'system.xml.xmlnode'”该错误与试图转换为xml有关。(而最初的问题是试图将XML作为字符串传递。)您对submitInvoice()
的声明返回字符串,我猜oreponse
被声明为XmlNode。