XmlDocument.InnerXml XmlDocument.InnerXml XmlDocument.InnerXml XmlDocument.InnerXml Property

Definition

Ruft das Markup ab, das die untergeordneten Elemente des aktuellen Knotens darstellt, oder legt dieses fest.Gets or sets the markup representing the children of the current node.

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

Eigenschaftswert

Das Markup der untergeordneten Elemente des aktuellen Knotens.The markup of the children of the current node.

Ausnahmen

Der beim Festlegen dieser Eigenschaft angegebene XML-Code ist nicht ordnungsgemäß formatiert.The XML specified when setting this property is not well-formed.

Hinweise

Durch Festlegen dieser Eigenschaft werden die untergeordneten Elemente des Knotens durch den analysierten Inhalt der angegebenen Zeichenfolge ersetzt.Setting this property replaces the children of the node with the parsed contents of the given string. Die Analyse wird im Kontext des aktuellen Namespaces durchgeführt.The parsing is done in the current namespace context.

InnerXmlentfernt redundante Namespace Deklarationen.InnerXml removes redundant namespace declarations. Daher wird die Größe des Dokuments nicht mit redundanten Namespacedeklarationen erhöht, wenn zahlreiche Ausschneide- und Einfügevorgänge erfolgen.As a result, numerous cut and paste operations do not increase the size of your document with redundant namespace declarations. Sehen Sie sich das folgende XSL-Dokument an:Consider the following XSL document:

<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 auf dem Stylesheet-Knoten gibt die folgende Zeichenfolge zurück:The InnerXml property on the stylesheet node returns the following string:

<xsl:template match="stock"   
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
     ...  
    </xsl:template>  

Beachten Sie die zusätzliche xmlns: XSL-Namespace Deklaration, die verwendet wird, um die Knoten Identität beizubehalten.Notice the additional xmlns:xsl namespace declaration which is used to preserve the node identity. Wenn Sie diese innere XML-Zeichenfolge erneut einfügen, erhalten Sie das ursprüngliche Dokument.If you re-insert this inner XML string, you will get back your original document. Anders ausgedrückt InnerXml : erkennt, dass die xmlns: XSL-Namespace Deklaration redundant ist, da das übergeordnete XSL: Stylesheet-Element bereits über die xmlns: XSL-Namespace Deklaration verfügt und daher entfernt wird.In other words, InnerXml recognizes that the xmlns:xsl namespace declaration is redundant, given that the parent xsl:stylesheet element already has the xmlns:xsl namespace declaration, and therefore removes it.

Wenn Sie von InnerXml einem Dokument ohne Standard Namespace zu einem Dokument mit einem Standard Namespace wechseln, ist das Verhalten etwas anders.If you move InnerXml from a document with no default namespace to a document with a default namespace, the behavior is a little different. Beachten Sie die folgende XML-Zeichenfolge:Consider the following XML string:

<test>  
      <item>123</item>  
    </test>  

InnerXmlgibt eine einfache XML-Zeichenfolge ohne Namespace Deklarationen zurück:InnerXml returns a plain XML string with no namespace declarations:

<item>123</item>  

Fügen Sie diese Zeichenfolge dann in ein Dokument ein, das über einen Standard Namespace verfügt, z. b. Folgendes:If you then insert this string into a document that does have a default namespace, such as the following:

<test2 xmlns="urn:1">  
    </test>  

InnerXmlanalysiert die Zeichenfolge im Kontext, und die neuen Knoten übernehmen den urn: 1-Namespace.InnerXml parses the string in context, and the new nodes pick up the urn:1 namespace. Das Ergebnis sieht wie folgt aus:The result looks like this:

<test2 xmlns="urn:1">  
      <item>123</item>  
    </test>  

Wenn Sie nun nach InnerXml Fragen, erhalten Sie Folgendes:Now when you ask for the InnerXml you get back the following:

<item xmlns="urn:1">123</item>  

Wenn das eingefügte Element explizit die Tatsache erhalten soll, dass es aus einem Dokument ohne Namespace stammt, müssen Sie manuell eine xmlns = ""-Deklaration hinzufügen und die resultierende Zeichenfolge einfügen:If you explicitly want the inserted item to preserve the fact that it came from a document that had no namespace then you need to manually add an xmlns= "" declaration and insert the resulting string:

<item xmlns="">123</item>  

Dies hat folgende Auswirkungen:The net effect of all this is as follows:

  1. Das Ausschnitten und InnerXml einfügen zwischen Dokumenten, die keine Namespaces verwenden, ist bereinigt und einfach und erstellt keine "xmlns"-Redundanz in ihren Zeichen folgen.Cutting and pasting InnerXml among documents that do not use namespaces is clean and simple and does not create "xmlns" redundancy in your strings.

  2. InnerXmlkann auch zum Ausschneiden und Einfügen zwischen Dokumenten verwendet werden, die über mehr als einen Namespace (XSL-Stylesheets) verfügen.InnerXml can also be used to cut and paste between documents which have more than one namespace (that is XSL stylesheets).

  3. xmlns: XSL-Deklarationen werden automatisch in ihren Zeichen folgen angezeigt und verschwinden in Ihren Knoten Hierarchien.xmlns:xsl declarations automatically appear in your strings and disappear in your node hierarchies.

  4. Wenn Sie von einem Dokument, das InnerXml über keinen Standard Namespace verfügt, zu einem Dokument mit einem Standard Namespace wechseln, wird der neue Standard Namespace von den neuen Knoten abgerufen.In the case where you are moving InnerXml from a document that has no default namespace to a document that does have a default namespace, the new nodes will pick up the new default namespace.

Wenn InnerXml mit Text, der Entitäts Verweise enthält, die derzeit nicht im Dokument definiert sind, festgelegt ist, enthält die resultierende Struktur leere EntityReference-Knoten.If InnerXml is set with text containing entity references that are not currently defined in the document, the resulting tree will contain empty EntityReference nodes.

Diese Eigenschaft ist eine Microsoft-Erweiterung des Dokumentobjektmodells (DOM).This property is a Microsoft extension to the Document Object Model (DOM).

Gilt für: