2010-11-16 15 views
0

Voici le fichier XML d'origineSauvegarde du résultat d'une requête LINQ dans un fichier XML

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <setup> 
     <cap>33</cap> 
    </setup> 
    <setup> 
     <cap>dd</cap> 
    </setup> 
</configuration> 

Dans l'exemple ci-dessous je supprimer le nœud où cap est égal à 33

Dim Cap As integer = 33 
Dim query = From q In XElement.Load(Environment.CurrentDirectory & "\sample.xml").Elements("setup") _ 
      Where q.Value = Cap _ 
      Select q 
For Each q In query 
    If Cap = q.Element("cap").Value Then q.Remove() 
Next 

Maintenant, comment J'écris le résultat de la requête dans le fichier .xml? Comme ...

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <setup> 
     <cap>dd</cap> 
    </setup> 
</configuration> 

Répondre

1

Eh bien, vous pouvez simplement créer un nouveau XDocument avec les données. (Syntaxe C#, mais facilement converti ...)

XDocument doc = new XDocument(new XElement("configuration", query)); 
doc.Save(file); 
+0

Trop près ... j'ai essayé quelque chose comme Dim doc Comme XDocument doc.Add (<%= query %>) doc.Sauvegardez (... mais cela n'a pas fonctionné! Merci. – OrElse

0

Comment l'utilisation de XPath:

Imports System.Xml.XPath 

Module Module1 

    Sub Main() 
     Dim doc = XDocument.Load("foo.xml") 
     doc.XPathSelectElements("//setup/cap[text() = 'dd']/..").Remove() 
     Console.WriteLine(doc) 
    End Sub 

End Module