Linq to XML remove éléments
Salut à tous
J'ai un fichier articles xml, 387M0 pour 3 millions de ligne
La plupat de ces ligne me sont inutiles.
J'ai ce petit bout de code qui marche, mais qui met plus 5H à se finir
ListeBDD : liste de string contenant la liste des constructeurs inutiles
Code:
1 2 3 4 5 6
|
For Each e As XElement In From ArtXml In LeFichierArticle.LeFichierXml.Element("files.index").Descendants("file").Reverse
If ListeBDD.Contains(e.Attribute("Supplier_id").Value) Then
e.Remove()
End If
Next |
J'ai vu qu'on pouvait faire ça en une ligne en Linq, mais je ne suis pas parvenu
Code:
1 2
|
Dim ddd2 = From ArtXml In LeFichierArticle.LeFichierXml.Element("files.index").Descendants("file") Select ArtXml.Attribute("Supplier_id").Value |
ça me retourne bien la liste des éléments à supprimer
mais
Code:
1 2
|
(From ArtXml In LeFichierArticle.LeFichierXml.Element("files.index").Descendants("file") Where ListeBDD.Contains(ArtXml.Attribute("Supplier_id").Value) Select ArtXml).remove() |
Me sort une erreur de syntaxe sur la 1ere parenthèse
Quelqu'un peut-il m'éclairer sur la suppression conditionnelle d'éléments dans un fichier Xml par Linq?