Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Klassen XDocument innehåller den information som krävs för ett giltigt XML-dokument, som innehåller en XML-deklaration, bearbetningsinstruktioner och kommentarer.
Du behöver bara skapa XDocument objekt om du behöver de specifika funktioner som tillhandahålls av XDocument klassen. I många fall kan du arbeta direkt med XElement. Att arbeta direkt med XElement är en enklare programmeringsmodell.
XDocument härleds från XContainer, så att den kan innehålla underordnade noder. Objekt kan dock XDocument bara ha en underordnad XElement nod. Detta återspeglar XML-standarden att det bara kan finnas ett rotelement i ett XML-dokument.
Komponenter i XDocument
En XDocument kan innehålla följande element:
- Ett XDeclaration objekt. XDeclaration gör att du kan ange de relevanta delarna i en XML-deklaration: XML-versionen, kodningen av dokumentet och om XML-dokumentet är fristående.
- Ett XElement objekt. Det här objektet är rotnoden i XML-dokumentet.
- Valfritt antal XProcessingInstruction objekt. En bearbetningsinstruktion förmedlar information till ett program som bearbetar XML-koden.
- Valfritt antal XComment objekt. Kommentarerna kommer att fungera som syskon till rotdomänen.
- En XDocumentType för DTD:n.
När du serialiserar en XDocument kommer utdata att ha en XML-deklaration, även om XDocument.Declaration är null, förutsatt att skrivaren har Writer.Settings.OmitXmlDeclaration inställd på false (standard).
Som standard anger LINQ till XML versionen till "1.0" och anger kodningen till "utf-8".
Använda XElement utan XDocument
Som tidigare nämnts XElement är klassen huvudklassen i programmeringsgränssnittet LINQ till XML. I många fall kräver inte programmet att du skapar ett dokument. Med hjälp XElement av klassen kan du:
- Skapa ett XML-träd.
- Lägg till andra XML-träd i den.
- Ändra XML-trädet.
- Spara det.
Använda XDocument
Om du vill konstruera en XDocumentanvänder du funktionell konstruktion, precis som du gör för att konstruera XElement objekt.
I följande exempel skapas ett XDocument objekt och dess associerade inneslutna objekt.
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")
Exemplet genererar dessa utdata i 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.-->