XmlDocument.InnerXml Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia znacznik reprezentujący elementy podrzędne bieżącego węzła.
public:
virtual property System::String ^ InnerXml { System::String ^ get(); void set(System::String ^ value); };
public override string InnerXml { get; set; }
member this.InnerXml : string with get, set
Public Overrides Property InnerXml As String
Wartość właściwości
Znaczniki elementów podrzędnych bieżącego węzła.
Wyjątki
Kod XML określony podczas ustawiania tej właściwości nie jest poprawnie sformułowany.
Uwagi
Ustawienie tej właściwości zastępuje elementy podrzędne węzła analizowaną zawartością danego ciągu. Analizowanie odbywa się w bieżącym kontekście przestrzeni nazw.
InnerXml
usuwa nadmiarowe deklaracje przestrzeni nazw. W związku z tym liczne operacje wycinania i wklejania nie zwiększają rozmiaru dokumentu przy użyciu nadmiarowych deklaracji przestrzeni nazw. Rozważmy następujący dokument XSL:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="stock">
...
</xsl:template>
</xsl:stylesheet>
Właściwość InnerXml
w węźle arkusza stylów zwraca następujący ciąg:
<xsl:template match="stock"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:template>
Zwróć uwagę na dodatkową deklarację przestrzeni nazw xmlns:xsl, która jest używana do zachowania tożsamości węzła. Jeśli ponownie wstawisz ten wewnętrzny ciąg XML, wrócisz do oryginalnego dokumentu. Innymi słowy, rozpoznaje, InnerXml
że deklaracja przestrzeni nazw xmlns:xsl jest nadmiarowa, biorąc pod uwagę, że nadrzędny element xsl:stylesheet ma już deklarację przestrzeni nazw xmlns:xsl, a zatem usuwa ją.
W przypadku przejścia InnerXml
z dokumentu bez domyślnej przestrzeni nazw do dokumentu z domyślną przestrzenią nazw zachowanie jest nieco inne. Rozważmy następujący ciąg XML:
<test>
<item>123</item>
</test>
InnerXml
Zwraca zwykły ciąg XML bez deklaracji przestrzeni nazw:
<item>123</item>
Jeśli następnie wstawisz ten ciąg do dokumentu, który ma domyślną przestrzeń nazw, na przykład:
<test2 xmlns="urn:1">
</test>
InnerXml
Analizuje ciąg w kontekście, a nowe węzły pobierają przestrzeń nazw urn:1. Wynik wygląda następująco:
<test2 xmlns="urn:1">
<item>123</item>
</test>
Teraz, gdy poprosisz o InnerXml
zwrot następujących elementów:
<item xmlns="urn:1">123</item>
Jeśli jawnie chcesz, aby wstawiony element zachował fakt, że pochodzi on z dokumentu, który nie miał przestrzeni nazw, musisz ręcznie dodać deklarację xmlns= "" i wstawić wynikowy ciąg:
<item xmlns="">123</item>
Efekt netto tego wszystkiego jest następujący:
Wycinanie i wklejanie
InnerXml
między dokumentami, które nie używają przestrzeni nazw, jest czyste i proste i nie tworzy nadmiarowości "xmlns" w ciągach.InnerXml
Można również użyć do wycinania i wklejania między dokumentami, które mają więcej niż jedną przestrzeń nazw (czyli arkusze stylów XSL).xmlns:deklaracje xsl są automatycznie wyświetlane w ciągach i znikają w hierarchii węzłów.
W przypadku przejścia
InnerXml
z dokumentu, który nie ma domyślnej przestrzeni nazw do dokumentu, który ma domyślną przestrzeń nazw, nowe węzły będą odbierać nową domyślną przestrzeń nazw.
Jeśli InnerXml
parametr jest ustawiony z tekstem zawierającym odwołania do jednostek, które nie są obecnie zdefiniowane w dokumencie, wynikowe drzewo będzie zawierać puste węzły EntityReference.
Ta właściwość jest rozszerzeniem firmy Microsoft do modelu obiektów dokumentów (DOM).