XmlDocument.InnerXml Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállítja az aktuális csomópont gyermekeit ábrázoló korrektúrát.
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
Tulajdonság értéke
Az aktuális csomópont gyermekeinek jelölése.
Kivételek
A tulajdonság beállításakor megadott XML nem megfelelő.
Megjegyzések
A tulajdonság beállítása a csomópont gyermekeit az adott sztring elemezett tartalmára cseréli. Az elemzés az aktuális névtérkörnyezetben történik.
InnerXml eltávolítja a redundáns névtér-deklarációkat. Ennek eredményeképpen számos kivágási és beillesztési művelet nem növeli a dokumentum méretét redundáns névtérdeklarációkkal. Vegye figyelembe a következő XSL-dokumentumot:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="stock">
...
</xsl:template>
</xsl:stylesheet>
A InnerXml stíluslap csomópontjának tulajdonsága a következő sztringet adja vissza:
<xsl:template match="stock"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:template>
Figyelje meg a csomóponti identitás megőrzéséhez használt további xmlns:xsl névtérdeklarációt. Ha újra beszúrja ezt a belső XML-sztringet, visszakapja az eredeti dokumentumot. Más szóval, felismeri, InnerXml hogy az xmlns:xsl névtér deklaráció redundáns, mivel a szülő xsl:stylesheet elem már rendelkezik az xmlns:xsl névtér deklarációval, ezért eltávolítja azt.
Ha egy alapértelmezett névtér nélküli dokumentumról egy alapértelmezett névtérrel rendelkező dokumentumra vált InnerXml , a viselkedés kissé eltérő. Vegye figyelembe a következő XML-sztringet:
<test>
<item>123</item>
</test>
InnerXml egyszerű XML-sztringet ad vissza névtérdeklarációk nélkül:
<item>123</item>
Ha ezt a sztringet beszúrja egy olyan dokumentumba, amely rendelkezik alapértelmezett névtérrel, például a következővel:
<test2 xmlns="urn:1">
</test>
InnerXml elemzi a sztringet a kontextusban, és az új csomópontok felveszik az urn:1 névteret. Az eredmény így néz ki:
<test2 xmlns="urn:1">
<item>123</item>
</test>
Most, amikor a kérést InnerXml kéri, a következőket kapja vissza:
<item xmlns="urn:1">123</item>
Ha kifejezetten azt szeretné, hogy a beszúrt elem megőrizze azt a tényt, hogy névtér nélküli dokumentumból származik, akkor manuálisan kell hozzáadnia egy xmlns= "" deklarációt, és be kell szúrnia az eredményül kapott sztringet:
<item xmlns="">123</item>
Ennek nettó hatása a következő:
A névtereket nem használó dokumentumok kivágása
InnerXmlés beillesztése tiszta és egyszerű, és nem hoz létre "xmlns" redundanciát a sztringekben.InnerXmlTöbb névtérrel rendelkező dokumentumok (azaz XSL-stíluslapok) kivágására és beillesztésére is használható.xmlns:xsl deklarációk automatikusan megjelennek a sztringekben, és eltűnnek a csomóponthierarchiákban.
Abban az esetben, ha az alapértelmezett névteret nem tartalmazó dokumentumról egy alapértelmezett névtérrel rendelkező dokumentumra vált
InnerXml, az új csomópontok felveszik az új alapértelmezett névteret.
Ha InnerXml a dokumentumban jelenleg nem definiált entitáshivatkozásokat tartalmazó szöveg van beállítva, az eredményként kapott fa üres EntityReference csomópontokat fog tartalmazni.
Ez a tulajdonság a Dokumentumobjektum-modell (DOM) Microsoft bővítménye.