2016-05-26 2 views
2

Я пытаюсь найти дочерний элемент с именем тега Причина. У меня есть XML-документ, который в основном содержит кучу элементов с именем Entity. Идентификатор причины находится где-то внутри Entity (вместе с другими элементами).Выберите дочерний узел в XML с определенным именем, используя C#

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); 
     } 
    } 
} 

Это местоположение элемента Причина.

<Entity> 
    <WatchList> 
    <Match ID="1"> 
     <MatchDetails> 
      <Reason> 

У кого-нибудь есть опыт работы с этим?

+0

Что такое reasonList? Вы имеете в виду сущностьList? – Crowcoder

ответ

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, я смогу улучшить ответ.

Edit:

Если вы хотите использовать XmlDocument вместо этого вы можете сделать это:

XmlNodeList nodes = responseDocument.GetElementsByTagName("Reason"); 

for (int i = 0; i < nodes.Count; i++) 
{ 
    Console.WriteLine(nodes[i].InnerText); 
} 
+0

Спасибо, что ответили. :) У меня нет XML-документа в строковой форме, он появляется как XmlDocument. Должен ли я сделать преобразование из XmlDocument в XDocument? @Nasreddine –

+0

Использование 'XDocument' упрощает анализ XML. Вы можете загрузить Xml из XmlDocument в XDocument, используя это: 'XDocument.Parse (responseDocument.InnerXml);' – Nasreddine

Смежные вопросы