XmlDocument.InnerXml-Eigenschaft
Ruft das Markup ab, das die untergeordneten Elemente des aktuellen Knotens darstellt, oder legt dieses fest.
Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)
Syntax
'Declaration
Public Overrides Property InnerXml As String
'Usage
Dim instance As XmlDocument
Dim value As String
value = instance.InnerXml
instance.InnerXml = value
public override string InnerXml { get; set; }
public:
virtual property String^ InnerXml {
String^ get () override;
void set (String^ value) override;
}
/** @property */
public String get_InnerXml ()
/** @property */
public void set_InnerXml (String value)
public override function get InnerXml () : String
public override function set InnerXml (value : String)
Eigenschaftenwert
Das Markup der untergeordneten Elemente des aktuellen Knotens.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
Der beim Festlegen dieser Eigenschaft angegebene XML-Code ist nicht wohlgeformt. |
Hinweise
Durch Festlegen dieser Eigenschaft werden die untergeordneten Elemente des Knotens durch den analysierten Inhalt der angegebenen Zeichenfolge ersetzt. Die Analyse erfolgt im aktuellen Namespacekontext.
InnerXml entfernt redundante Namespacedeklarationen. Daher wird die Größe des Dokuments nicht mit redundanten Namespacedeklarationen erhöht, wenn zahlreiche Ausschneide- und Einfügevorgänge erfolgen. Betrachten Sie folgendes XSL-Dokument:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="stock">
...
</xsl:template>
</xsl:stylesheet>
Die InnerXml-Eigenschaft für den Stylesheetknoten gibt folgende Zeichenfolge zurück:
<xsl:template match="stock"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:template>
Beachten Sie die zusätzliche Namespacedeklaration xmlns:xsl, die verwendet wird, um die Identität des Knotens beizubehalten. Wenn Sie diese innere XML-Zeichenfolge erneut einfügen, erhalten Sie das ursprüngliche Dokument. InnerXml erkennt folglich, dass die Namespacedeklaration xmlns:xsl redundant ist, da das übergeordnete xsl:stylesheet-Element bereits über die Namespacedeklaration xmlns:xsl verfügt. Diese wird daher entfernt.
Wenn Sie InnerXml aus einem Dokument ohne Standardnamespace in ein Dokument mit einem Standardnamespace verschieben, liegt ein etwas anderes Verhalten vor. Betrachten Sie folgende XML-Zeichenfolge:
<test>
<item>123</item>
</test>
InnerXml gibt eine einfache XML Zeichenfolge ohne Namespacedeklarationen zurück:
<item>123</item>
Angenommen, Sie fügen dann diese Zeichenfolge in ein Dokument mit Standardnamespace wie folgt ein:
<test2 xmlns="urn:1">
</test>
InnerXml analysiert die Zeichenfolge im Kontext, und die neuen Knoten übernehmen den Namespace urn:1. Das Ergebnis sieht wie folgt aus:
<test2 xmlns="urn:1">
<item>123</item>
</test>
Wenn Sie nun InnerXml anfordern, erhalten Sie Folgendes zurück:
<item xmlns="urn:1">123</item>
Wenn Sie möchten, dass für das eingefügte Element die Information erhalten bleibt, dass es aus einem Dokument ohne Namespace stammt, müssen Sie die Deklaration xmlns= "" eingeben und die resultierende Zeichenfolge einfügen:
<item >123</item>
Das Ergebnis sieht wie folgt aus:
Das Verschieben von InnerXml zwischen Dokumenten, die keinen Namespace verwenden, ist einfach und problemlos und erstellt keine redundanten "xmlns"-Zeichenfolgen.
InnerXml kann auch zum Verschieben über die Zwischenablage zwischen Dokumenten verwendet werden, die über mehrere Namespaces verfügen (d. h. XSL-Stylesheets).
xmlns:xsl-Deklarationen werden automatisch in den Zeichenfolgen angezeigt und aus den Knotenhierarchien ausgeblendet.
Wenn Sie InnerXml aus einem Dokument ohne Standardnamespace in ein Dokument mit Standardnamespace verschieben, übernimmt der neue Knoten den neuen Standardnamespace.
Wenn InnerXml mit Text festgelegt ist, der zu diesem Zeitpunkt im Dokument nicht definierte Entitätsverweise enthält, weist die resultierende Struktur leere EntityReference-Knoten auf.
Diese Eigenschaft ist eine Microsoft-Erweiterung des Dokumentobjektmodells (Document Object Model, DOM).
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0