C#: как читать подобные узлы из XML с помощью LINQ
У меня есть большой XML-файл, который я хочу прочитать в своем приложении и сохранить некоторые значения в пользовательском классе. В файле есть несколько узлов <tu>. (новый класс TUs / раздел tu). Проблемная часть связана с узлом <seg>. (каждый <tu> имеет два <seg> узла с одним и тем же родительским узлом, но с разным атрибутом (языком)).
Как вы можете видеть, мой базовый скрипт поймает один и тот же (первый) узел <seg> дважды.
<tu creationdate="20130619T135814Z" creationid="ANA" changedate="20130619T135814Z" changeid="ANA" lastusagedate="20130619T135814Z"> <prop type="x-LastUsedBy">ANA</prop> <prop type="x-Origin">TM</prop> <prop type="x-OriginalFormat">TradosTranslatorsWorkbench</prop> <tuv xml:lang="de-DE"> <seg>Die Teile werden im Querdurchlauf transportiert.<ph x="1" type="1" /></seg> </tuv> <tuv xml:lang="en-GB"> <seg>The parts are transported in a cross conveyance.<ph x="1" type="1" /></seg> </tuv> </tu>
Что я уже пробовал:
XDocument xDoc; xDoc = XDocument.Load(path); var result = from q in xDoc.Descendants("tu") select new TUs { SOURCE = q.Element("tuv").Element("seg").Value, TARGET = q.Element("tuv").Element("seg").Value, }; foreach (TUs TU in result) { Console.WriteLine(TU.SOURCE); Console.WriteLine(TU.TARGET); }