Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC解析Web服务中的XML_C#_Xml_Web Services_Asp.net Mvc 4 - Fatal编程技术网

C# MVC解析Web服务中的XML

C# MVC解析Web服务中的XML,c#,xml,web-services,asp.net-mvc-4,C#,Xml,Web Services,Asp.net Mvc 4,我正试图解析来自web服务的xml结果,但得到一个错误{'System.xml.Linq.XElement.parse(string)'的最佳重载方法匹配项有一些无效参数} XML输出 <?xml version="1.0" encoding="UTF-8"?> -<List> -<Customer> <Surname>Spack</Surname> <Firstname>Bob</Firstname> <

我正试图解析来自web服务的xml结果,但得到一个错误
{'System.xml.Linq.XElement.parse(string)'的最佳重载方法匹配项有一些无效参数}

XML输出

<?xml version="1.0" encoding="UTF-8"?>
-<List>
-<Customer>
<Surname>Spack</Surname>
<Firstname>Bob</Firstname>
</Customer>
</List>

-
-
斯帕克
上下快速移动

我做错了什么,请帮助。

如果您使用F12 XElement.Parse,您可以看到它只有两个单独的方法签名,在这两个签名中,预期的第一个参数都是字符串。我将猜测service.GetDetails不会返回字符串


如果在ViewBag的末尾抛出一个.ToString()。姓氏赋值至少可以让您摆脱编译错误。很难说这是否真的能得到您想要的数据。

正如错误消息所建议的,
XElement.Parse()
expect
string
作为参数(而不是您当前通过的
XmlDocument

您可以使用获取
XmlDocument
的字符串标记表示形式:

ViewBag.Surname = XElement.Parse(result.OuterXml)
                          .Descendants("Customer")
                          .Single()
                          .Element("Surname")
                          .Value;

什么是数据类型
GetDetails()
method return?结果的类型是什么?完整的异常详细信息是什么?另外,这真的是您的xml吗?因为在您的问题中,它不是xml。我的Web服务使用
[WebMethod]公共XmlDocument GetDetails(string systemId,string appId)
所以我应该返回一个XML文档。谢谢,这将错误分类,现在我有了一个新的
“object”不包含“Single”的定义。
我想要的只是返回姓氏,你能看到我的XML输出并确定我哪里出错了吗?我在这里没有得到这样的错误。但我注意到,姓氏是一个节点/元素不是属性。我已根据您的建议修改了代码,现在得到的错误是
“object”不包含“Single”的定义
有想法吗?奇怪,没有想法。
XElement.subjects()
不应返回
object
ViewBag.Surname = XElement.Parse(result.OuterXml)
                          .Descendants("Customer")
                          .Single()
                          .Element("Surname")
                          .Value;