代码之家  ›  专栏  ›  技术社区  ›  OrElse

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

  •  0
  • OrElse  · 技术社区  · 15 年前

    这是原始的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 回复  |  直到 10 年前
        1
  •  1
  •   Jon Skeet    15 年前

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

    XDocument doc = new XDocument(new XElement("configuration", query));
    doc.Save(file);
    
        2
  •  0
  •   Darin Dimitrov    15 年前

    使用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
    
    推荐文章