Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas ładowania i zapisywania XmlDocument dokument może się różnić od oryginalnego w następujący sposób:
PreserveWhitespace Jeśli właściwość jest ustawiona na
trueprzed wywołaniem metody Save, spacje w dokumencie zostaną zachowane w danych wyjściowych. Jeśli ta właściwość tofalse, XmlDocument automatycznie wcięte wyjście.Wszystkie białe odstępy między atrybutami są zmniejszane do pojedynczego znaku spacji.
Zmienia się biała przestrzeń między elementami. Znaczne białe odstępy są zachowane, a nieistotne nie są. Jednak po zapisaniu dokumentu domyślnie będzie używany XmlTextWritertryb wcięcia, aby starannie wydrukować wynik, czyniąc go bardziej czytelnym.
Znak cudzysłowu używany wokół wartości atrybutów jest domyślnie zmieniany na podwójny cudzysłów. Możesz użyć właściwości QuoteChar w obiekcie XmlTextWriter do ustawienia znaku ograniczającego na podwójny lub pojedynczy cudzysłów.
Domyślnie numeryczne encje znakowe, takie jak
{, są rozszerzane.Znacznik kolejności bajtów znaleziony w dokumencie wejściowym nie jest zachowywany. UCS-2 jest zapisywany jako UTF-8, chyba że jawnie utworzysz deklarację XML określającą inne kodowanie.
Jeśli chcesz zapisać XmlDocument do pliku lub strumienia, dane wyjściowe będą takie same jak zawartość dokumentu. Oznacza to, że element XmlDeclaration jest zapisywany tylko wtedy, gdy istnieje jeden zawarty w dokumencie, a kodowanie używane podczas zapisywania dokumentu jest tym samym kodowaniem podanym w węźle deklaracji.
Pisanie deklaracji Xml
Członkowie XmlDocument i XmlDeclaration z OuterXml, InnerXml oraz WriteTo, a także metody XmlDocument i Save, tworzą deklarację XML.
We właściwościach OuterXml, InnerXml oraz Save i metodach WriteTo, WriteContentTo kodowanie zapisane w deklaracji XML jest pobierane z węzła XmlDeclaration. Jeśli węzeł XmlDeclaration nie istnieje, XmlDeclaration nie jest zapisywany. Jeśli w węźle XmlDeclaration nie ma kodowania, kodowanie nie jest zapisywane w deklaracji XML.
Metody XmlDocument.Save i XmlDocument.Save zawsze zapisują element XmlDeclaration. Metody te przyjmują kodowanie od składnika zapisywania, do którego jest zapisywany. Oznacza to, że wartość kodowania w module zapisu zastępuje kodowanie w dokumencie i w XmlDeclaration. Na przykład poniższy kod nie zapisuje kodowania w deklaracji XML znalezionej w pliku out.xmlwyjściowym .
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);
W przypadku Save metody deklaracja XML jest zapisywana przy użyciu WriteStartDocument metody w XmlWriter klasie . W związku z tym nadpisanie metody WriteStartDocument zmienia sposób, w jaki zapisywany jest początek dokumentu.
XmlDeclaration W przypadku elementów członkowskich OuterXml, WriteTo i InnerXml, jeśli właściwość Encoding nie jest ustawiona, nie zostaje zapisane żadne kodowanie. W przeciwnym razie kodowanie zapisane w deklaracji XML jest takie samo jak kodowanie znalezione w właściwości Encoding.
Pisanie zawartości dokumentu przy użyciu właściwości OuterXml
Właściwość OuterXml to rozszerzenie firmy Microsoft do standardów dokumentowego modelu obiektowego (DOM) XML Konsorcjum World Wide Web (W3C). Właściwość OuterXml służy do pobierania znaczników całego dokumentu XML lub tylko znaczników pojedynczego węzła wraz z jego węzłami podrzędnymi. OuterXml Zwraca znacznik reprezentujący dany węzeł i wszystkie jego węzły podrzędne.
Poniższy przykładowy kod pokazuje, jak zapisać dokument w całości jako ciąg.
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;
Poniższy przykładowy kod pokazuje, jak zapisać tylko 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;
Z kolei można użyć właściwości InnerText, jeśli chce się uzyskać zawartość węzłów podrzędnych.