XmlDocument.InnerXml Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger markering som representerar underordnade noder för den aktuella noden.
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
Egenskapsvärde
Markering av underordnade till den aktuella noden.
Undantag
DEN XML som anges när du anger den här egenskapen är inte välformulerad.
Kommentarer
Om du anger den här egenskapen ersätts underordnade noder med det tolkade innehållet i den angivna strängen. Parsningen görs i den aktuella namnområdeskontexten.
InnerXml tar bort redundanta namnområdesdeklarationer. Därför ökar inte många klipp-och-klistra-åtgärder storleken på dokumentet med redundanta namnområdesdeklarationer. Överväg följande XSL-dokument:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="stock">
...
</xsl:template>
</xsl:stylesheet>
Egenskapen InnerXml på formatmallsnoden returnerar följande sträng:
<xsl:template match="stock"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:template>
Observera den ytterligare xmlns:xsl-namnområdesdeklarationen som används för att bevara nodidentiteten. Om du infogar den här inre XML-strängen igen får du tillbaka det ursprungliga dokumentet. Med andra ord InnerXml , identifierar att xmlns:xsl-namnområdesdeklarationen är redundant, eftersom det överordnade xsl:stylesheet-elementet redan har xmlns:xsl-namnområdesdeklarationen och därför tar bort den.
Om du flyttar InnerXml från ett dokument utan standardnamnområde till ett dokument med ett standardnamnområde är beteendet lite annorlunda. Överväg följande XML-sträng:
<test>
<item>123</item>
</test>
InnerXml returnerar en vanlig XML-sträng utan namnområdesdeklarationer:
<item>123</item>
Om du sedan infogar den här strängen i ett dokument som har ett standardnamnområde, till exempel följande:
<test2 xmlns="urn:1">
</test>
InnerXml parsar strängen i kontext och de nya noderna hämtar namnområdet urn:1. Resultatet ser ut så här:
<test2 xmlns="urn:1">
<item>123</item>
</test>
Nu när du ber om att InnerXml få tillbaka följande:
<item xmlns="urn:1">123</item>
Om du uttryckligen vill att det infogade objektet ska bevara det faktum att det kom från ett dokument som inte hade något namnområde måste du manuellt lägga till en xmlns= ""-deklaration och infoga den resulterande strängen:
<item xmlns="">123</item>
Nettoeffekten av allt detta är följande:
Att klippa ut och klistra in
InnerXmldokument som inte använder namnområden är rent och enkelt och skapar inte "xmlns"-redundans i dina strängar.InnerXmlkan också användas för att klippa ut och klistra in mellan dokument som har mer än ett namnområde (det vill:s XSL-formatmallar).xmlns:xsl-deklarationer visas automatiskt i dina strängar och försvinner i nodhierarkierna.
Om du flyttar
InnerXmlfrån ett dokument som inte har något standardnamnområde till ett dokument som har ett standardnamnområde, hämtar de nya noderna det nya standardnamnområdet.
Om InnerXml anges med text som innehåller entitetsreferenser som för närvarande inte har definierats i dokumentet innehåller det resulterande trädet tomma EntityReference-noder.
Den här egenskapen är ett Microsoft tillägg till dokumentobjektmodellen (DOM).