Compartir a través de


Información general acerca de la clase XDocument

En este tema se presenta la clase XDocument.

Información general acerca de la clase XDocument

La clase XDocument contiene la información necesaria para un documento XML válido.Incluye una declaración XML, instrucciones de procesamiento y comentarios.

Tenga en cuenta que solo debe crear objetos XDocument si necesita la funcionalidad específica que proporciona la clase XDocument.En muchas circunstancias, puede trabajar directamente con XElement.Trabajar directamente con XElement constituye un modelo de programación más simple.

XDocument se deriva de XContainer.Por lo tanto, puede contener nodos secundarios.Sin embargo, los objetos XDocument solo pueden tener un nodo XElement secundario.Esto refleja el estándar XML: solo puede haber un elemento raíz en un documento XML.

Componentes de XDocument

Un objeto XDocument puede contener los siguientes elementos:

  • Un objeto XDeclaration.XDeclaration permite especificar las partes pertinentes de una declaración XML: la versión XML, la codificación del documento y si el documento XML es independiente.

  • Un objeto XElement.Es el nodo raíz del documento XML.

  • Cualquier número de objetos XProcessingInstruction.Una instrucción de procesamiento comunica información a una aplicación que procesa el XML.

  • Cualquier número de objetos XComment.Los comentarios serán del mismo nivel que el elemento raíz.El objeto XComment no puede ser el primer argumento de la lista, ya que no es válido que el documento XML empiece con un comentario.

  • Un elemento XDocumentType para el DTD.

Al serializar un objeto XDocument, aunque XDocument.Declaration sea null, el resultado generará una declaración XML, siempre y cuando el redactor haya establecido Writer.Settings.OmitXmlDeclaration en false (valor predeterminado).

De manera predeterminada, LINQ to XML establece la versión en "1.0" y la codificación en "utf-8".

Usar XElement sin XDocument

Tal como se indicó anteriormente, la clase XElement es la clase principal de la interfaz de programación LINQ to XML. En muchos casos, la aplicación no necesitará la creación de un documento.Mediante la clase XElement, puede crear un árbol XML, agregarle otros árboles XML, modificar el árbol XML o guardarlo.

Usar XDocument

Para construir un objeto XDocument, use la construcción funcional, al igual que cuando se construyen objetos XElement.

El código siguiente crea un objeto XDocument y sus objetos contenidos asociados.

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")

Al examinar el archivo test.xml, obtendrá el siguiente resultado:

<?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.-->

Vea también

Conceptos

Información general acerca de la programación de LINQ to XML