Как изменять и сохранять документы XML с помощью класса "XmlDocument"

Переводы статьи Переводы статьи
Код статьи: 301233 - Vizualiza?i produsele pentru care se aplic? acest articol.
Данная статья была ранее опубликована под номером RU301233
Данная статья содержит информацию о бета-версии программного продукта Microsoft. Информация в данной статье не является официальной и может быть изменена без предварительного уведомления.

Бета-версия продукта не обслуживается через каналы технической поддержки Microsoft. За информацией о получении технической поддержки бета-версии программного обеспечения обратитесь к документации, содержащейся в поставке, или на веб-сайте, с которого был загружен продукт.
Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье приводится описание процедуры обновления и сохранения документов XML с помощью класса "XmlDocument".

Системные требования

В следующем списке представлены рекомендации по подбору аппаратного и программного обеспечения, сетевой инфраструктуры и пакетов обновления:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server или Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
В данной статье подразумевается, что вы обладаете достаточными знаниями в следующих областях программирования:
  • Терминология XML
  • Создание и чтение XML-файлов
  • Document Object Model (DOM)

Как использовать класс "XmlDocument" для сохранения документов XML

  1. Запустите Microsoft Visual Studio .NET и создайте новый проект приложения типа "Console Application".
  2. Убедитесь, что проект имеет ссылку на пространство имен "System.Xml".
  3. Используйте директиву "Imports" для пространства имен "Xml", чтобы избежать использования полного имени в дальнейшем. Директива "Imports" должна быть указана в начале программного кода: Для Visual Basic .NET
    Imports System.Xml
    
    Для C#
    using System.Xml;
    
  4. Создайте экземпляр объекта "XmlDocument" и загрузите XML-документ с помощью метода "Load".

    Класс "XmlDocument" представляет XML-документ и включает в себя метод "Load", предназначенный для загрузки документа из файла или потока.

    Для 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" также включен в поставку Visual Studio .NET и .NET Framework Software Development Kit (SDK).
  5. Класс "XmlNode" обеспечивает методы и свойства для управления узлом XML-документа. Используйте свойство "DocumentElement" объекта "XmlNode" класса "XmlDocument" для доступа к элементами XML-документа. Для Visual Basic .NET
    Dim node as XmlNode
    node = myXmlDocument.DocumentElement
    
    Для C#
    XmlNode node;
    node = myXmlDocument.DocumentElement;
    
  6. Выполните просмотр элементов документа XML и найдите все узлы "price". Используйте оператор цикла "For Each" для элементов "ChildNodes" объекта "Node", чтобы найти все узлы, у которых свойство "Name" равно "price". Удвойте цену книги. Для Visual Basic .NET
    Dim node2 As XmlNode 'Используется во внутреннем цикле.
    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)
    
             ' Удваивает цену.
             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);
                // Увеличивает цену всех книг на 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" класса "XmlDocument" для сохранения нового XML документа с именем "InflatedPriceBooks.xml".

    Метод "Save" может быть использован для сохранения данных XML в файл, поток или класс "XmlWriters". Для Visual Basic .NET
    myXmlDocument.Save("InflatedPriceBooks.xml"))
    
    Для C#
    myXmlDocument.Save("InflatedPriceBooks.xml");
    
    За дополнительной информацией о примере программного кода, отображающего содержимое XML документа, обратитесь к следующей статье Microsoft Knowledge Base:
    301101HOW TO: Work with the XmlDocument Class to Load and Use XML
  8. Запустите Ваш проект.

ССЫЛКИ

За дополнительной информацией обратитесь к следующим веб-сайтам:
XML in .NET: .NET Framework XML Classes and C# Offer Simple, Scalable Data Manipulation
http://msdn.microsoft.com/msdnmag/issues/01/01/xml/xml.asp

Document Object Model (Core) Level 1
http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html

Document Object Model Core
http://www.w3.org/TR/DOM-Level-2-Core/core.html

Класс "XmlDocument"
http://msdn.microsoft.com/library/dotnet/cpref/frlrfsystemxmlxmldocumentclasstopic.htm

Класс "XmlNode"
http://msdn.microsoft.com/library/dotnet/cpref/frlrfsystemxmlxmlnodeclasstopic.htm

XML Document Object Model (DOM)
http://msdn.microsoft.com/library/dotnet/cpguidnf/cpconxmldocumentobjectmodeldom.htm






Свойства

Код статьи: 301233 - Последний отзыв: 8 апреля 2003 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft .NET Framework Software Development Kit 1.0
Ключевые слова: 
kbhowto kbhowtomaster kbxml tslic_tslic KB301233
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

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