Sdílet prostřednictvím


Ukládání a zápis dokumentu

Při načítání a ukládání XmlDocumentse uložený dokument může lišit od originálu následujícími způsoby:

  • PreserveWhitespace Pokud je vlastnost nastavena před true zavolání Save metody, prázdné znaky v dokumentu se zachovají ve výstupu; pokud je falsetato vlastnost , XmlDocument automaticky odsadí výstup.

  • Všechny prázdné znaky mezi atributy se zmenší na jeden znak mezery.

  • Změní se prázdné znaky mezi prvky. Významné prázdné znaky se zachovají a nevýznamné prázdné znaky nejsou. Když ale dokument uložíte, použije XmlTextWriter režim odsazení ve výchozím nastavení k přehlednějšímu tisku výstupu, aby byl čitelnější.

  • Znak uvozovky použitý kolem hodnot atributů se ve výchozím nastavení změní na dvojitou uvozovku. Vlastnost můžete XmlTextWriter použít QuoteChar k nastavení znaku uvozovky na dvojitou uvozovku nebo jednoduchou uvozovku.

  • Ve výchozím nastavení se entity číselných znaků, jako { jsou, rozbalí.

  • Značka pořadí bajtů nalezená ve vstupním dokumentu se nezachová. UCS-2 se uloží jako UTF-8, pokud explicitně nevytvoříte deklaraci XML, která určuje jiné kódování.

  • Pokud chcete zapisovat XmlDocument do souboru nebo datového proudu, výstup je stejný jako obsah dokumentu. To znamená, že je XmlDeclaration napsaný pouze v případě, že je v dokumentu obsažen jeden a kódování použité při zápisu dokumentu je stejné kódování uvedené v uzlu deklarace.

Zápis xmldeclaration

InnerXmlXmlDeclaration OuterXmlKromě XmlDocument metod a členů , a WriteTo, kromě XmlDocument metod Save a WriteContentTo, vytvořit XML deklarace.

XmlDocument Pro vlastnosti OuterXml, InnerXmla , WriteToa Save, a WriteContentTo metody , kódování napsané v deklaraci XML je převzato z XmlDeclaration uzlu. Pokud neexistuje žádný XmlDeclaration uzel, XmlDeclaration nezapíše se. Pokud není v XmlDeclaration uzlu žádné kódování, kódování není zapsáno v deklaraci XML.

Metody XmlDocument.Save a XmlDocument.Save metody vždy zapisuje .XmlDeclaration Tyto metody přebírají kódování od zapisovače, do kterého píše. To znamená, že kódovací hodnota zápisu přepisuje kódování v dokumentu a v XmlDeclarationsouboru . Například následující kód nezapisuje kódování v deklaraci XML nalezené ve výstupním souboru out.xml.

Dim doc As New XmlDocument()  
Dim tw As XmlTextWriter = New XmlTextWriter("out.xml", Nothing)  
doc.Load("text.xml")  
doc.Save(tw)  
XmlDocument doc = new XmlDocument();  
XmlTextWriter tw = new XmlTextWriter("out.xml", null);  
doc.Load("text.xml");  
doc.Save(tw);  

Pro metodu Save je deklarace XML zapsána pomocí WriteStartDocument metody ve XmlWriter třídě. Proto přepsání WriteStartDocument metody změní způsob zápisu začátku dokumentu.

XmlDeclaration Pro členy OuterXml, WriteToa InnerXml, pokud Encoding vlastnost není nastavena, není zapsáno žádné kódování. V opačném případě je kódování napsané v deklaraci XML stejné jako kódování nalezené ve Encoding vlastnosti.

Zápis obsahu dokumentu pomocí vlastnosti OuterXml

Vlastnost OuterXml je rozšíření Microsoftu pro standardy MODELU DOM (World Wide Web Consortium) XML Document Object Model (DOM). Tato OuterXml vlastnost slouží k získání kódu celého dokumentu XML nebo pouze revize jednoho uzlu a jeho podřízených uzlů. OuterXml vrátí značku představující daný uzel a všechny jeho podřízené uzly.

Následující ukázka kódu ukazuje, jak uložit dokument celý jako řetězec.

Dim mydoc As New XmlDocument()  
' Perform application needs here, like mydoc.Load("myfile");  
' Now save the entire document to a string variable called "xml".  
Dim xml As String = mydoc.OuterXml  
XmlDocument mydoc = new XmlDocument();  
// Perform application needs here, like mydoc.Load("myfile");  
// Now save the entire document to a string variable called "xml".  
string xml = mydoc.OuterXml;  

Následující ukázka kódu ukazuje, jak uložit pouze element dokumentu.

' For the content of the Document Element only.  
Dim xml As String = mydoc.DocumentElement.OuterXml  
// For the content of the Document Element only.  
string xml = mydoc.DocumentElement.OuterXml;  

Naproti tomu vlastnost můžete použít InnerText , pokud chcete obsah podřízených uzlů.

Viz také