Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс XDocument содержит сведения, необходимые для допустимого XML-документа, который включает объявление XML, инструкции по обработке и комментарии.
Создавать объекты XDocument необходимо только в том случае, если требуется определенная функциональность, предоставляемая классом XDocument. Во многих случаях вы можете работать непосредственно с XElement. Работа непосредственно с XElement — это более простая модель программирования.
XDocument производный от XContainer, поэтому он может содержать дочерние узлы. XDocument Однако объекты могут иметь только один дочерний XElement узел. Это отражает стандарт XML, в соответствии с которым в XML-документе может быть только один корневой элемент.
Компоненты XDocument
Может XDocument содержать следующие элементы:
- Один XDeclaration объект. XDeclaration позволяет указать соответствующие части объявления XML: XML-версию, кодировку документа и автономный XML-документ.
- Один XElement объект. Этот объект является корневым узлом XML-документа.
- Любое количество XProcessingInstruction объектов. Инструкция обработки передает сведения приложению, обрабатывающего XML.
- Любое количество XComment объектов. Комментарии будут находиться на одном уровне с корневым элементом.
- Один XDocumentType для DTD.
При сериализации XDocument, даже если XDocument.Declaration это null, выходные данные будут иметь XML-объявление, если Writer.Settings.OmitXmlDeclaration установлен в false (по умолчанию).
По умолчанию LINQ to XML задает версию "1.0" и задает кодировку "utf-8".
Использование XElement без XDocument
Как упоминалось ранее, XElement класс является основным классом в интерфейсе программирования LINQ to XML. Во многих случаях вам не потребуется создавать документ в вашем приложении. С помощью XElement класса можно:
- Создайте XML-дерево.
- Добавьте в него другие деревья XML.
- Измените XML-дерево.
- Сохраните его.
Использование XDocument
Чтобы создать XDocument, используйте функциональное построение, как и для создания объектов XElement.
В следующем примере создаётся объект XDocument и связанные с ним объекты.
XDocument d = new XDocument(
new XComment("This is a comment."),
new XProcessingInstruction("xml-stylesheet",
"href='mystyle.css' title='Compact' type='text/css'"),
new XElement("Pubs",
new XElement("Book",
new XElement("Title", "Artifacts of Roman Civilization"),
new XElement("Author", "Moreno, Jordao")
),
new XElement("Book",
new XElement("Title", "Midieval Tools and Implements"),
new XElement("Author", "Gazit, Inbar")
)
),
new XComment("This is another comment.")
);
d.Declaration = new XDeclaration("1.0", "utf-8", "true");
Console.WriteLine(d);
d.Save("test.xml");
Dim doc As XDocument = <?xml version="1.0" encoding="utf-8"?>
<!--This is a comment.-->
<?xml-stylesheet href='mystyle.css' title='Compact' type='text/css'?>
<Pubs>
<Book>
<Title>Artifacts of Roman Civilization</Title>
<Author>Moreno, Jordao</Author>
</Book>
<Book>
<Title>Midieval Tools and Implements</Title>
<Author>Gazit, Inbar</Author>
</Book>
</Pubs>
<!--This is another comment.-->
doc.Save("test.xml")
В этом примере выводятся следующие данные в test.xml:
<?xml version="1.0" encoding="utf-8"?>
<!--This is a comment.-->
<?xml-stylesheet href='mystyle.css' title='Compact' type='text/css'?>
<Pubs>
<Book>
<Title>Artifacts of Roman Civilization</Title>
<Author>Moreno, Jordao</Author>
</Book>
<Book>
<Title>Midieval Tools and Implements</Title>
<Author>Gazit, Inbar</Author>
</Book>
</Pubs>
<!--This is another comment.-->