我正在尝试查找标签名为Reason的子元素。 我有XML doc,它基本上包含一堆带有实体名称的元素。 Reason标记位于Entity内部(以及其他元素)。
void IParseResponse.ParseResponseData(XmlDocument responseDocument)
{
List<string> reasons = new List<string>();
var reasonValue = "";
var entityList = responseDocument.GetElementsByTagName("Entity");
if (entityList != null)
{
foreach (XmlNode reason in entityList)
{
reasonValue = //look into current Entity element, find Reason in it and get it's inner text.
reasons.Add(reasonValue);
}
}
}
这是Reason元素的位置。
<Entity>
<WatchList>
<Match ID="1">
<MatchDetails>
<Reason>
有人有这方面的经验吗?
答案 0 :(得分:3)
以下是获取所有Reason
元素的方法。
var xml = "<Entity> <WatchList><Match ID=\"1\"><MatchDetails><Reason>asdasd</Reason></MatchDetails></Match></WatchList></Entity>";
var x = XDocument.Parse(xml);
var reasons = x.Descendants("Reason").ToList();
foreach (var reason in reasons)
{
Console.WriteLine(reason.Value);
}
如果您向我们提供更完整的XML示例,我可以改进答案。
修改强>
如果你想使用XmlDocument,你可以这样做:
XmlNodeList nodes = responseDocument.GetElementsByTagName("Reason");
for (int i = 0; i < nodes.Count; i++)
{
Console.WriteLine(nodes[i].InnerText);
}