C#Soap get属性

C#Soap get属性,c#,vim,soap,C#,Vim,Soap,我想解析soap请求的答案,并从条目haTask-2-vim.VirtualMachine.powerOn-25 haTask-2-vim.VirtualMachine.powerOn-25和Atribute的值是多少?任务,使用innerxml解析值不是问题,但我希望得到类型任务,这是我的soap <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenc="http://schemas.xml

我想解析soap请求的答案,并从条目
haTask-2-vim.VirtualMachine.powerOn-25
haTask-2-vim.VirtualMachine.powerOn-25和Atribute的值是多少?任务,使用innerxml解析值不是问题,但我希望得到类型任务,这是我的soap

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<PowerOnVM_TaskResponse xmlns="urn:internalvim25"><returnval type="Task">haTask-2-vim.VirtualMachine.powerOn-25</returnval></PowerOnVM_TaskResponse>
</soapenv:Body>
</soapenv:Envelope>
我的代码提供了以下输出

version="1.0" encoding="UTF-8"




haTask-2-vim.VirtualMachine.powerOn-93
试试下面的代码

StreamReader objSR = new StreamReader(response.GetResponseStream()); //get the soap from a server
string strResponse = objSR.ReadToEnd();
XmlReader reader = XmlReader.Create(new StringReader(strResponse));
while (reader.Read())
{
    if(reader.HasAttributes)
        Console.WriteLine(reader.GetAttribute("Type"));
    Console.WriteLine( reader.Value);
}
好吧,我找到了一个“更好”的解决方案,也许这是废话,但有效

StreamReader objSR = new StreamReader(response.GetResponseStream()); //get the soap from a server
string strResponse = objSR.ReadToEnd();
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(strResponse);
XmlNodeList name = xDoc.GetElementsByTagName("returnval");
try
{
    Console.WriteLine(name[0].InnerText + name[0].Attributes[0].InnerText);
    Console.ReadLine();
}
catch { Exception e; }

显示如何解析此XML的代码?一般来说,每个xml节点都有属性属性,现在可以用来添加类型了,对不起,我在c中是个新手,谢谢,可以用了,只有让人困惑的是,看起来PowerOnVM_TaskResponse有任务Atribute,而不是我想要的returnintervalnode应该是returnval,应该为其读取类型属性….调试时您一定忽略了某些内容….如果您接受了有助于您的答案,那就太好了:)好,也许还有人知道我该如何更好地使用这种肥皂,
StreamReader objSR = new StreamReader(response.GetResponseStream()); //get the soap from a server
string strResponse = objSR.ReadToEnd();
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(strResponse);
XmlNodeList name = xDoc.GetElementsByTagName("returnval");
try
{
    Console.WriteLine(name[0].InnerText + name[0].Attributes[0].InnerText);
    Console.ReadLine();
}
catch { Exception e; }