我在C#中有一个应用程序,我在客户端和服务器之间检查SOAP消息。
请求和响应始终是XML序列化。消息的一部分有action方法,我需要获得方法,但我已经看到我在XML中需要的元素并不总是具有相同的名称:
以下是一个例子:
这是我需要解析的元素:
<a:Action s:mustUnderstand="1">http://tempuri.org/IMember/GetAuthorizations</a:Action>
有时也会出现这样的情况:
<Action d1p1:mustUnderstand="1" xmlns:d1p1="http://www.w3.org/2003/05/soap-envelope" xmlns="http://www.w3.org/2005/08/addressing">http://tempuri.org/IMember/GetAuthorizations</Action>
我需要获得的是网址的方法,在这种情况下,我需要解析此元素,以便我可以获得 GetAuthorizations
有关如何解析两者的任何线索?我不知道它是第一种方式还是第二种方式。
答案 0 :(得分:0)
试试这个
string input = "<a:Action xmlns:a=\"http://tempuri.org\" xmlns:s=\"http://tempuri.org\" s:mustUnderstand=\"1\">\"http://tempuri.org/IMember/GetAuthorizations\"</a:Action>";
XDocument doc = XDocument.Parse(input);
string mustUnderstand = doc.Elements().Where(x => x.Name.LocalName == "Action").Attributes().Where(y => y.Name.LocalName == "mustUnderstand").FirstOrDefault().Value;