XmlDocument.InnerXml Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví kód představující podřízené položky aktuálního uzlu.
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
Hodnota vlastnosti
Kód podřízených položek aktuálního uzlu.
Výjimky
Xml zadaný při nastavení této vlastnosti není správně formátován.
Poznámky
Nastavení této vlastnosti nahradí podřízené položky uzlu parsovaným obsahem daného řetězce. Analýza se provádí v aktuálním kontextu jmenného prostoru.
InnerXml odebere redundantní deklarace oboru názvů. V důsledku toho četné operace vyjmutí a vložení nezvětší velikost dokumentu kvůli redundantním deklaracím oboru názvů. Zvažte následující dokument XSL:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="stock">
...
</xsl:template>
</xsl:stylesheet>
Vlastnost InnerXml uzlu šablony stylů vrátí následující řetězec:
<xsl:template match="stock"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:template>
Všimněte si další deklarace oboru názvů xmlns:xsl, která se používá k zachování identity uzlu. Pokud tento vnitřní řetězec XML znovu vložíte, vrátíte původní dokument. Jinými slovy, rozpozná, InnerXml že deklarace oboru názvů xmlns:xsl je redundantní vzhledem k tomu, že nadřazený element xsl:stylesheet již má deklaraci oboru názvů xmlns:xsl, a proto ji odebere.
Pokud přejdete InnerXml z dokumentu bez výchozího oboru názvů na dokument s výchozím oborem názvů, chování se trochu liší. Představte si následující řetězec XML:
<test>
<item>123</item>
</test>
InnerXml vrátí prostý řetězec XML bez deklarací oboru názvů:
<item>123</item>
Pokud tento řetězec vložíte do dokumentu, který má výchozí obor názvů, například následující:
<test2 xmlns="urn:1">
</test>
InnerXml analyzuje řetězec v kontextu a nové uzly vyberou obor názvů urn:1. Výsledek vypadá takto:
<test2 xmlns="urn:1">
<item>123</item>
</test>
Když teď požádáte o InnerXml vrácení následujících položek:
<item xmlns="urn:1">123</item>
Pokud chcete, aby vložená položka zachovala skutečnost, že pochází z dokumentu, který nemá žádný obor názvů, musíte ručně přidat deklaraci xmlns= "" a vložit výsledný řetězec:
<item xmlns="">123</item>
Čistý účinek všech těchto možností je následující:
Vyjmutí
InnerXmla vkládání mezi dokumenty, které nepoužívají obory názvů, je čisté a jednoduché a nevytváří redundanci xmlns ve vašich řetězcích.InnerXmllze také použít k vyjmutí a vložení mezi dokumenty, které mají více než jeden obor názvů (to jsou šablony stylů XSL).Deklarace xmlns:xsl se automaticky zobrazí v řetězcích a zmizí v hierarchiích uzlů.
V případě, že přecházíte
InnerXmlz dokumentu, který nemá výchozí obor názvů, do dokumentu, který má výchozí obor názvů, nové uzly převezmou nový výchozí obor názvů.
Pokud InnerXml je nastaven text obsahující odkazy na entity, které nejsou aktuálně definovány v dokumentu, výsledný strom bude obsahovat prázdné uzly EntityReference.
Tato vlastnost je rozšířením Microsoftu pro model DOM (Document Object Model).