我有来自服务的XML响应,我需要获得子节点中存在的标记值,该子节点是子节点。
例如:这是xml的一个例子。
<ashrait>
<response>
<command>inquire</command>
<inquire>
<row>
<ResponseCode>000</ResponseCode>
<ResponseText>
Permitted.
</ResponseText>
<ResponseXML>
<ashrait>
<response>
<message>Permitted .</message>
<userMessage>Permitted .</userMessage>
</response>
</ashrait>
</ResponseXML>
</row>
</inquire>
</response>
</ashrait>
我需要标记为“ResponseXML”的标记“userMessage”中的值。
我知道要获得“ResponseXML”节点,我需要这些行:
var doc = new XmlDocument();
doc.LoadXml(responseFile);
ChildNode result = doc.GetElementsByTagName("ResponseXML")[0];
但是我如何在childNode“ResponseXML”中获得标签userMessage?
由于
更新:
我想出了怎么做。 搜索带有标签的所有孩子,并选择他们想要的顺序。
答案 0 :(得分:0)
使用
或SelectSingleNode方法:https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.selectsinglenode(v=vs.110).aspx
var doc = new XmlDocument();
doc.LoadXml(Xml);
XmlNode xn = doc.SelectSingleNode("//ashrait//inquire//row//ResponseXML//message");
var innerText = xn.InnerText;
答案 1 :(得分:0)
为您的XML创建模型,使用XmlSerializer
加载该模型。
检查此Microsoft Docs。
https://docs.microsoft.com/en-us/dotnet/standard/serialization/examples-of-xml-serialization