Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La XDocument clase contiene la información necesaria para un documento XML válido, que incluye una declaración XML, instrucciones de procesamiento y comentarios.
Solo necesitas crear objetos XDocument si necesitas la funcionalidad específica proporcionada por XDocument la clase. En muchas circunstancias, puedes trabajar directamente con XElement. Trabajar directamente con XElement es un modelo de programación más sencillo.
XDocument deriva de XContainer, por lo que puede contener nodos secundarios. Sin embargo, XDocument los objetos solo pueden tener un nodo secundario XElement . Esto refleja el estándar XML que solo puede haber un elemento raíz en un documento XML.
Componentes de XDocument
Un XDocument puede contener los siguientes elementos:
- Un XDeclaration objeto. 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 XElement objeto. Este objeto es el nodo raíz del documento XML.
- Cualquier número de XProcessingInstruction objetos. Una instrucción de procesamiento comunica información a una aplicación que procesa el XML.
- Cualquier número de XComment objetos. Los comentarios serán del mismo nivel que el elemento raíz.
- Un elemento XDocumentType para el DTD.
Al serializar un XDocument, incluso si XDocument.Declaration es null, la salida incluirá una declaración XML si el escritor tiene Writer.Settings.OmitXmlDeclaration configurado en false (el valor predeterminado).
De forma predeterminada, LINQ to XML establece la versión en "1.0" y establece la codificación en "utf-8".
Uso de XElement sin XDocument
Como se mencionó anteriormente, la XElement clase es la clase principal de la interfaz de programación LINQ to XML. En muchos casos, la aplicación no requerirá que cree un documento. Con la XElement clase , puede hacer lo siguiente:
- Cree un árbol XML.
- Agregue otros árboles XML.
- Modifique el árbol XML.
- Guárdelo.
Uso de XDocument
Para construir un XDocument, use construcción funcional, igual que para construir objetos XElement.
En el ejemplo siguiente se crea un XDocument objeto 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")
En el ejemplo se genera esta salida en 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.-->