|
Программирование >> Программирование с использованием ajax
Список параметров XDocument () в приведенном фрагменте кода опущен, так что вы можете видеть начало и конец вызова XDocument (). Подобно всем конструкторам LINQto XML, XDocument () принимает массив объектов (Object [ ]) как один из его параметров, так что ряд других объектов, созданных другими конструкторами, может быть передан ему. Все прочие конструкторы, которые вызываются в этой программе, являются параметрами одного вызова конструктора XDocument (). Первый (и единственный) параметр, который передается в программе - это конструктор XElement (). XElement (). В документе XML должен присутствовать корневой элемент, так что в большинстве случаев список параметров XDocument () начинается с объекта XElement. Конструктор XElement () принимает имя элемента в виде строки, за которым следует список объектов XML, содержащихся внутри элемента. Здесь корневым элементом является customers , который, в свою очередь, содержит список элементов customer : new XElement( customers , new XElement( customer . □ Элемент customer не содержит в себе никаких других элементов. Вместо этого он содержит три атрибута XML, которые создаются конструктором XAttributeО . □ XAttribute (). Здесь к элементу customer добавляются три атрибута XML, именуемые ID , City и Region : new XAttribute( ID , A ), new XAttribute( City , New York ), new XAttribute( Region , North America ), □ Поскольку атрибут XML no определению является листовым узлом XML, не содержащим в себе никаких других узлов XML, конструктор XAttribute () принимает только имя атрибута и его значение в качестве параметров. В данном случае три сгенерированных атрибута - это ID= A , City= New York и Region= North America . □ Другие конструкторы LINQ to XML. Хотя они не вызываются в рассматриваемой программе, существуют и другие конструкторы LINQ to XML для всех типов узлов XML, такие как XDeclaration () - для объявления XML в начале XML-документа, XComment () - для комментария XML и т.д. Другие конструкторы не используются часто, но доступны, если вы нуждаетесь в них для тонкого контроля форматирования документа XML. Дополнительное описание полученных результатов В завершение объяснений первого примера: к элементу customer добавляются два дочерних элемента order , сопровождаемые атрибутами ID , City и Region : new XElement( order , new XAttribute ( Item , Widget ), new XAttribute( Price , 100) new XElement( order , new XAttribute( Item , Tire ), new XAttribute ( Price , 200) Элементы order имеют атрибуты Item и Price , но не имеют других дочерних элементов. Затем содержимое полученного документа выводится на консоль: Console.WriteLine(xdoc); Этот оператор выводит текст XML-документа, используя метод ToStringO по умолчанию объекта XDocument. И, наконец, вывод на экран приостанавливается, чтобы можно было увидеть консольный вывод, ожидая нажатия пользователем клавиши <Enter>: Console.Write( Программа завершена, нажмите Enter для продолжения: ); Console.ReadLine(); После этого программа выходит из метода Main () и завершается. Конструирование текста элемента XML со строками Приведенный выше пример форматирует XML без какого-либо текста в элементах. Но часто код XML нуждается также в некотором текстовом содержимом, и это очень легко реализовать с помощью конструктора LINQ to XML объекта XElement (). Например, чтобы сделать идентификатор текстом элемента <customer> вместо его атрибута, просто передайте строку в параметрах конструктора XElement () вместо вложенного XAttribute: XDocument xdoc = new XDocument( new XElement( customers , new XElement( customer , AAAAAA , new XAttribute( City , New York ), new XAttribute( Region , North America ) new XElement( customer , BBBBBB , new XAttribute( City , Mumbai ), new XAttribute( Region , Asia ) Это создаст документ XML следующего вида: <customers> <customer City= New York Region= North America >AAAAAA</customer> <customer City= Mumbai Region= Asia >BBBBBB</customer> </customers> Конструктор XElement () соединяет все строки в списке параметров в один текстовый раздел элемента. Сохранение и загрузка документа XML Вы, возможно, заметили, что при отображении документа XML на экране консоли методом Console.WriteLine () он не отображает нормального объявления XML, начинающегося с <?xml version= l .0 . Хотя такое объявление можно создать явно с помощью конструктора XDeclaration (), обычно незачем это делать, поскольку оно создается автоматически при сохранении XML-документа в файл методом Save () из LINQ to XML. Вдобавок, хотя конструирование документов XML в программе полезно для понимания работы конструкторов, делать это часто не придется. Чаще доведется загружать XML-документы из внешнего источника, такого как файл. В следующем практическом занятии вы испытаете эти операции в действии. Практическое занят Сохранение и загрузка документа XML Для создания примера выполните следующие шаги в Visual С# 2008. L Либо модифицируйте предыдущий пример, либо создайте новое консольное приложение по имени BegVCSharp 2 9 2 SaveLoadXML в каталоге С:\ BegVCSharp\Chapter2 9. 2. Откройте главный файл Program, cs. 3. Добавьте ссылку на пространство имен System.Xml. Linq в начало Program, cs, как показано ниже: using System; using System.Collections.Generic; using System.Linq; using System.Xml.Linq; using System.Text; Если вы модифицируете предыдущий пример, эта строка уже есть. 4. Если это еще не сделано, добавьте конструктор документа XML с вложенным элементом XML и вызовами атрибутов из предыдущего примера в метод Main () в Program.cs: static void Main(string[] args) { XDocument xdoc = new XDocument( new XElement( customers , new XElement( customer , new XAttribute( ID , A ), new XAttribute( City , New York ), new XAttribute( Region , North America ), new XElement( order , new XAttribute ( Item , Widget ), new XAttribute( Price , 100) new XElement( order , new XAttribute( Item , Tire ), new XAttribute( Price , 200) new XElement( customer , new XAttribute( ID , B ), new XAttribute( City , Mumbai ), new XAttribute( Region , Asia ), new XElement( order , new XAttribute( Item , Oven ), new XAttribute( Price , 501)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |