Linq to XML -Найти элемент

Я уверен, что это базовый вопрос, и, вероятно, его уже спрашивали, но я только начинаю использовать Linq to XML.

У меня есть простой XML, который мне нужно читать и писать.

<Documents>
...
    <Document>
      <GUID>09a1f55f-c248-44cd-9460-c0aab7c017c9-0</GUID>
      <ArchiveTime>2012-05-15T14:27:58.5270023+02:00</ArchiveTime>
      <ArchiveTimeUtc>2012-05-15T12:27:58.5270023Z</ArchiveTimeUtc>
      <IndexDatas>
        <IndexData>
          <Name>Name1</Name>
          <Value>Some value</Value>
          <DataType>1</DataType>
          <CreationTime>2012-05-15T14:27:39.6427753+02:00</CreationTime>
          <CreationTimeUtc>2012-05-15T12:27:39.6427753Z</CreationTimeUtc>
        </IndexData>
        <IndexData>
          <Name>Name2</Name>
          <Value>Some value</Value>
          <DataType>3</DataType>
          <CreationTime>2012-05-15T14:27:39.6427753+02:00</CreationTime>
          <CreationTimeUtc>2012-05-15T12:27:39.6427753Z</CreationTimeUtc>
        </IndexData>
  ...
 </IndexDatas>
</Document>
...
</Documents>

У меня есть узел «Документы», который содержит кучу узлов «Документ».

У меня есть GUID документа и имя «IndexData». Мне нужно найти документ по GUID и проверить, есть ли у него "IndexData" с каким-то именем. Если его нет, мне нужно добавить его.

Любая помощь будет оценена, так как у меня проблемы с чтением и поиском элементов корыта.

В настоящее время я пытаюсь использовать (в C#):

IEnumerable<XElement> xmlDocuments = from c in XElement
                                       .Load(filePath)
                                       .Elements("Documents") 
                                         select c;

// fetch document
 XElement documentElementToEdit = (from c in xmlDocuments where 
                    (string)c.Element("GUID").Value == GUID select c).Single();

РЕДАКТИРОВАТЬ

xmlDocuments.Element("Documents").Elements("Document")

Это не возвращает никакого результата, даже если xmlDocuments.Element («Документы» ). Похоже, я не могу получить узлы документов из узла документов.

7
задан no9 6 July 2012 в 09:09
поделиться