Linq to XML - Trouver un élément
Je suis sûr que c'est de base et, probablement, a demandé avant, mais je suis seulement à partir de l'utilisation de Linq to XML.
J'ai un XML simple que j'ai besoin de lire et d'écrire.
<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>
J'ai un "Documents" nœud qui contient des tas de "Document" nœuds.
J'ai GUID du document et un "données indexées" de nom.
J'ai besoin de trouver le document en GUID et de vérifier si elle a "données indexées", avec un nom.
Si elle ne l'a pas j'ai besoin de l'ajouter.
Toute aide serait aprécié, que j'ai un problème avec la lecture et la recherche d'auge éléments.
Actuellement, je suis en train d'utiliser (en 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();
MODIFIER
xmlDocuments.Element("Documents").Elements("Document")
Ce ne renvoie aucun résultat, même tho xmlDocuments.Élément("Documents") n'. Il semble que je ne peux pas obtenir le Document nœuds à partir de Documents nœud.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver ces documents (docs sans nom dans l'index de données) avec le code ci-dessous, après que vous pouvez ajouter à vos éléments à la fin des données indexées éléments.
doc.Descendants("Document")
Cela devrait fonctionner: