如何修改和保存 XML.。NET 框架 SDK

文章翻译 文章翻译
文章编号: 301233 - 查看本文应用于的产品
本文的发布号曾为 CHS301233
这篇文章涉及如下。NET 框架类库命名空间:
  • System.XML
展开全部 | 关闭全部

本文内容

概要

此示例演示如何更新和保存 XML 与如下类。

要求

下表列出了推荐的硬件、 软件、网络基础结构和服务包,您需要:
  • Microsoft Windows 2000 专业版,Windows 2000 服务器,Windows 2000 高级服务器或 Windows NT 4.0 服务器
  • Microsoft Visual Studio。NET
本文假定您熟悉下列与主题:
  • XML 术语
  • 创建和读取 XML 文件
  • 文档对象模型 (DOM)

如何保存 XML 使用.

  1. 创建一个新的 Visual Basic 或 C# 控制台应用程序中Visual Studio。NET。
  2. 请确保该项目引用的System.Xml命名空间。
  3. 使用Imports语句上的Xml命名空间,因此,您不需要限定在代码中更高版本的XmlTextReader声明。您必须使用Imports语句以任何其他声明之前。
    Visual Basic。NET 代码
    Imports System.Xml
    C# 代码
    using System.Xml;
    
  4. 创建一个新的如下类,并使用Load方法加载它。

    如下类表示 XML 文档,并且有加载方法加载文档从一个文件、 流或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 文件不是使用可视画室式。NET 和。NET 框架软件开发工具包 (SDK)。
  5. XmlNode对象提供的方法和属性,以处理一个节点。使用XmlNode对象如下DocumentElement属性返回一个 XML 节点的操作。
    Visual Basic。NET 代码
    Dim node as XmlNode
    node = myXmlDocument.DocumentElement
    
    C# 代码
    XmlNode node;
    node = myXmlDocument.DocumentElement;
    
  6. 循环访问文档元素的子级,找到"价格"的所有节点。使用每个循环构造与节点对象的ChildNodes属性以查找具有Name属性的值等于"价格"的所有节点。两倍的价格简介册。
    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. 使用如下类的Save方法将改变后的 XML 保存到名为的新文件InflatedPriceBooks.xml。

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

参考

有关详细信息,请访问以下网站:
XML 中。NET:。NET 框架 XML 类和 C# 提供了简单、 可扩展的数据操作

文档对象模型 (核心) 第 1 级

文档对象模型的核心

如下类

XmlNode 类

XML 文档对象模型 (DOM)

属性

文章编号: 301233 - 最后修改: 2012年6月12日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
关键字:?
kbhowtomaster kbmt KB301233 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 301233
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com