CSDN博客

img PeterPlus

用 XmlDocument 类修改和保存 XML

发表于2004/9/28 14:13:00  5958人阅读

分类: .NET

用 XmlDocument 类修改和保存 XML

概要
此示例演示如何使用 XmlDocument 类更新和保存 XML。

要求

下表概括了推荐使用的硬件、软件、网络架构以及所需的 Service Pack:
  • Microsoft Windows 2000 Professional、Windows 2000 Server、Windows 2000 Advanced Server 或 Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
本文假定您熟悉下列主题:
  • XML 术语
  • 创建和读取 XML 文件
  • 文档对象模型 (DOM)

如何使用 XmlDocument 类保存 XML

  1. 在 Visual Studio .NET 中新建 Visual Basic 或 C# 控制台应用程序。
  2. 确保该项目引用 System.Xml 名称空间。
  3. Xml 名称空间上使用 Imports 语句,这样,以后就不需要在代码中限定 XmlTextReader 声明了。Imports 语句必须位于任何其他声明之前。 Visual Basic .NET 代码
    Imports System.Xml
    C# 代码
    using System.Xml;
  4. 新建 XmlDocument 类,然后使用 Load 方法加载它。

    XmlDocument 类表示 XML 文档并且使用 Load 方法从文件、流或 XmlReader 加载文档。

    Visual Basic .NET 代码
    Dim myXmlDocument as XmlDocument = new XmlDocument()
    myXmlDocument.Load ("books.xml"))
    C# 代码
    XmlDocument myXmlDocument = new XmlDocument();
    myXmlDocument.Load ("books.xml");
    请注意,尽管在此处使用了 Books.xml 文件,但是您可创建自己的 Books.xml 文件。Books.xml 示例文件还包括在 Visual Studio .NET 和 .NET 框架软件开发工具包 (SDK) 中。
  5. XmlNode 对象提供了操作节点的方法和属性。 使用 XmlDocument DocumentElement 属性返回的 XmlNode 对象操作 XML 节点。 Visual Basic .NET 代码
    Dim node as XmlNode
    node = myXmlDocument.DocumentElement
    C# 代码
    XmlNode node;
    node = myXmlDocument.DocumentElement;
  6. 迭代文档元素的子元素,并查找所有“price”节点。 对 Node 对象的 ChildNodes 属性使用 For Each 循环结构,查找所有 Name 属性等于“price”的节点。 将书籍的价格加倍。 Visual Basic .NET 代码
    Dim node2 As XmlNode 'Used for internal loop.
    Dim nodePriceText As XmlNode
    For Each node In node.ChildNodes
       'Find the price child node.
       For Each node2 In node.ChildNodes
          If node2.Name = "price" Then
             '                    nodePriceText = node2.InnerText
             Dim price As Decimal
             price = System.Decimal.Parse(node2.InnerText)
    
             ' Double the price.
             Dim newprice As String
             newprice = CType(price * 2, Decimal).ToString("#.00")
             Console.WriteLine("Old Price = " & node2.InnerText & Strings.Chr(9) & "New price = " & newprice)
             node2.InnerText = newprice
    End If
    Next
    Next
    C# 代码
    foreach(XmlNode node1 in node.ChildNodes)
       foreach (XmlNode node2 in node1.ChildNodes)
          if (node2.Name == "price")
             {
                Decimal price = Decimal.Parse(node2.InnerText);
                // Increase all the book prices by 20%
                String newprice = ((Decimal)price*(new Decimal(1.20))).ToString("#.00");
                Console.WriteLine("Old Price = " + node2.InnerText + "/tNew price = " + newprice);
                node2.InnerText = newprice;
              }
  7. 使用 XmlDocument 类的 Save 方法将修改后的 XML 保存到名为 InflatedPriceBooks.xml 的新文件中。

    可以使用 Save 方法将 XML 数据保存到文件、流和 XmlWriters 中。 Visual Basic .NET 代码
    myXmlDocument.Save("InflatedPriceBooks.xml"))
    C# 代码
    myXmlDocument.Save("InflatedPriceBooks.xml");
  8. 生成并运行您的项目
阅读全文
0 0

相关文章推荐

img
取 消
img