2013-11-27 5 views
0

я получил XML так:

Получение конкретных данных в узле других данных в одном узле

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<!--Some comment--> 
<Databook> 
    <Note> 
    <Name>Camera2 made a snapshoot #243</Name> 
    <Value>Camera2_snapshoot-2013-09-06_21-47-35.png</Value> 
    </Note> 
    <Note> 
    <Name>Camera1 made a snapshoot #244</Name> 
    <Value>Camera1_snapshoot-2013-09-06_21-47-39.png</Value> 
    </Note> 
</Databook> 


И я хочу, чтобы получить строку beetwen [Value] .. [/ Value] от конкретного узла, зная только строку [Name] .. [/ Name].

Это то, что я сделал до сих пор:

string xmlfile = string.Format("XML/Diary/" + day); 
XDocument dailyXML = XDocument.Load(xmlfile); 

XElement Contact = (from xml2 in dailyXML.Descendants("Note") 
        where xml2.Element("Name").Value == item 
        select xml2).FirstOrDefault(); 

ответ

1

Вы очень близки, если вы просто хотите, значение Value где Name равна item

Try:

string result = (from xml2 in dailyXML.Descendants("Note") 
          where xml2.Element("Name").Value == item 
          select xml2.Element("Value").Value).FirstOrDefault(); 

или

string result = dailyXML.Descendants("Note") 
         .Where(n => n.Element("Name").Value == item) 
         .FirstOrDefault(n => n.Element("Value").Value); 
+0

первый работает для меня, спасибо большое! – DanielSz

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