2010-11-16 50 views
0

這裏是原始的XML文件保存LINQ查詢的結果爲XML文件

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

在下面的例子中我刪除節點,在帽等於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 

現在怎麼能我將查詢的結果寫回到.xml文件中?像...

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

回答

1

那麼,你可以用數據創建一個新的XDocument。 (C#語法,但很容易地轉換...)

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

太近...我試圖像昏暗文檔作爲的XDocument doc.Add(<%= query %>) doc.Save(...但它沒有解決!謝謝。 – OrElse 2010-11-16 09:14:35

0

如何使用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