XmlDocument.InnerXml Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee worden de markeringen opgehaald of ingesteld die de onderliggende elementen van het huidige knooppunt vertegenwoordigen.
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
Waarde van eigenschap
De markering van de onderliggende items van het huidige knooppunt.
Uitzonderingen
De XML die is opgegeven bij het instellen van deze eigenschap, is niet goed opgemaakt.
Opmerkingen
Als u deze eigenschap instelt, worden de onderliggende elementen van het knooppunt vervangen door de geparseerde inhoud van de opgegeven tekenreeks. De parsering wordt uitgevoerd in de huidige naamruimtecontext.
InnerXml verwijdert redundante naamruimtedeclaraties. Als gevolg hiervan vergroten talloze knip- en plakbewerkingen de grootte van uw document niet met redundante naamruimtedeclaraties. Overweeg het volgende XSL-document:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="stock">
...
</xsl:template>
</xsl:stylesheet>
De InnerXml eigenschap op het opmaakmodelknooppunt retourneert de volgende tekenreeks:
<xsl:template match="stock"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:template>
Let op de aanvullende xmlns:xsl-naamruimtedeclaratie die wordt gebruikt om de knooppuntidentiteit te behouden. Als u deze interne XML-tekenreeks opnieuw invoegt, krijgt u het oorspronkelijke document terug. Met andere woorden, InnerXml herkent dat de declaratie xmlns:xsl-naamruimte overbodig is, omdat het bovenliggende element xsl:stylesheet al de declaratie xmlns:xsl-naamruimte heeft en daarom verwijdert.
Als u van een document zonder standaardnaamruimte naar een document met een standaardnaamruimte gaat InnerXml , is het gedrag iets anders. Houd rekening met de volgende XML-tekenreeks:
<test>
<item>123</item>
</test>
InnerXml retourneert een gewone XML-tekenreeks zonder naamruimtedeclaraties:
<item>123</item>
Als u deze tekenreeks vervolgens invoegt in een document met een standaardnaamruimte, zoals de volgende:
<test2 xmlns="urn:1">
</test>
InnerXml parseert de tekenreeks in context en de nieuwe knooppunten halen de urn:1-naamruimte op. Het resultaat ziet er als volgt uit:
<test2 xmlns="urn:1">
<item>123</item>
</test>
Wanneer u nu om het InnerXml volgende vraagt, krijgt u het volgende terug:
<item xmlns="urn:1">123</item>
Als u het ingevoegde item expliciet wilt behouden dat het afkomstig is van een document zonder naamruimte, moet u handmatig een xmlns= ""-declaratie toevoegen en de resulterende tekenreeks invoegen:
<item xmlns="">123</item>
Het netto-effect hiervan is als volgt:
Knippen en plakken
InnerXmltussen documenten die geen naamruimten gebruiken, is schoon en eenvoudig en maakt geen xmlns-redundantie in uw tekenreeksen.InnerXmlkan ook worden gebruikt om te knippen en plakken tussen documenten met meer dan één naamruimte (dat is XSL-opmaakmodellen).xmlns:xsl-declaraties worden automatisch weergegeven in uw tekenreeksen en verdwijnen in uw knooppunthiërarchieën.
In het geval dat u overstapt
InnerXmlvan een document met geen standaardnaamruimte naar een document met een standaardnaamruimte, worden de nieuwe standaardnaamruimte door de nieuwe knooppunten opgehaald.
Als InnerXml deze is ingesteld met tekst die entiteitsverwijzingen bevat die momenteel niet in het document zijn gedefinieerd, bevat de resulterende structuur lege EntityReference-knooppunten.
Deze eigenschap is een Microsoft extensie voor het Document Object Model (DOM).