Sono sicuro che questo è di base e probabilmente è stato chiesto prima, ma sto solo iniziando ad usare Linq in XML.Da Linq a XML - Trova un elemento
Ho un semplice XML che ho bisogno di leggere e scrivere.
<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>
Ho un nodo "Documenti" che contiene un mucchio di nodi "Documento".
Ho GUID del documento e un nome "IndexData". Ho bisogno di trovare il documento da GUID e controllare se ha "IndexData" con qualche nome. Se non ce l'ha ho bisogno di aggiungerlo.
Qualsiasi aiuto sarebbe apprezzato, in quanto ho problemi con la lettura e la ricerca di elementi di depressione.
Attualmente sto cercando di utilizzare (in 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();
EDIT
xmlDocuments.Element("Documents").Elements("Document")
Ciò restituisce alcun risultato, anche tho xmlDocuments.Element ("Documenti") fa. Sembra che non riesca a ottenere nodi documento dal nodo Documenti.
Penso che dovrebbe essere 'doc.Descendants ("Documento")' –
Grazie, fisso. –