C#Soap get属性
我想解析soap请求的答案,并从条目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
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; }