Выберите элемент с помощью LINQ to XML

#linq-to-xml

#linq-to-xml

Вопрос:

У меня есть следующий XML.

 <logs version="1.3.1.1" xmlns="http://www.witsml.org/schemas/131">
    <log uidWell="001" uidWellbore="001" uid="0c43e8df-ed63-41e4-878f-d1e5dd3b97d1">
        <startIndex uom="m">200.29</startIndex>
        <endIndex uom="m">209.73</endIndex>
        <logCurveInfo>
            <mnemonic>hkldAv1</mnemonic>
        </logCurveInfo>
        <logCurveInfo>
            <mnemonic>DEPTH</mnemonic>
        </logCurveInfo>
        <logCurveInfo>
            <mnemonic>wobAv1</mnemonic>
        </logCurveInfo>
        <logCurveInfo>
            <mnemonic>ropAv1</mnemonic>
        </logCurveInfo>
        <logData />
    </log>
</logs>
  

Я хочу извлечь элемент <logData> из XML.

Я пробовал с,

 XDocument xDoc = XDocument.Load(@"e:data.xml");
XNamespace xmlns = "http://www.witsml.org/schemas/131";
XElement xlog = xDoc.Element(xmlns   "logData");
  

Но он возвращает null для xlog .

Ответ №1:

Вам нужно углубиться в иерархию, используя Descendants() , вот так:

   var xlogs = xDoc.Descendants(xmlns   "logData");
  

Который предоставит вам перечислимый файл со всеми данными журнала.