将linq查询的结果保存到XML文件

时间:2010-11-16 08:58:40

标签: xml vb.net linq linq-to-xml

这是原始的xml文件

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

在下面的示例中,我删除了cap等于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>

2 个答案:

答案 0 :(得分:1)

好吧,您可以使用数据创建一个新的XDocument。 (C#语法,但很容易转换......)

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

答案 1 :(得分: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