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

定義

現在のノードの子を表すマークアップを取得または設定します。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

プロパティ値

現在のノードの子のマークアップ。The markup of the children of the current node.

例外

このプロパティの設定時に指定される XML は、整形式ではありません。The XML specified when setting this property is not well-formed.

注釈

このプロパティを設定すると、ノードの子は、指定した文字列の解析された内容に置き換えられます。Setting this property replaces the children of the node with the parsed contents of the given string. 文字列の解析は、現在の名前空間コンテキストで実行されます。The parsing is done in the current namespace context.

InnerXml冗長な名前空間宣言を削除します。InnerXml removes redundant namespace declarations. この結果、カット アンド ペースト操作を何度も実行しても、冗長な名前空間宣言によってドキュメント サイズが増加することはありません。As a result, numerous cut and paste operations do not increase the size of your document with redundant namespace declarations. 次の XSL ドキュメントについて考えてみましょう。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>  

Stylesheet InnerXmlノードのプロパティは、次の文字列を返します。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>  

ノード id を保持するために使用される追加の xmlns: xsl 名前空間宣言に注意してください。Notice the additional xmlns:xsl namespace declaration which is used to preserve the node identity. この内部 XML 文字列を再挿入すると、元のドキュメントが返されます。If you re-insert this inner XML string, you will get back your original document. つまり、は、 InnerXml xmlns: xsl 名前空間宣言が冗長であることを認識します。これは、親 xsl: stylesheet 要素に既に xmlns: xsl 名前空間宣言が含まれているためです。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.

既定の名前InnerXml空間を持たないドキュメントから既定の名前空間を持つドキュメントに移動した場合、動作は少し異なります。If you move InnerXml from a document with no default namespace to a document with a default namespace, the behavior is a little different. 次の XML 文字列を考えてみます。Consider the following XML string:

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

InnerXml名前空間宣言のないプレーン XML 文字列を返します。InnerXml returns a plain XML string with no namespace declarations:

<item>123</item>  

その後、次のように、既定の名前空間を持つドキュメントにこの文字列を挿入します。If you then insert this string into a document that does have a default namespace, such as the following:

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

InnerXmlコンテキスト内の文字列を解析し、新しいノードが urn: 1 名前空間を取得します。InnerXml parses the string in context, and the new nodes pick up the urn:1 namespace. 結果は次のようになります。The result looks like this:

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

では、次のようInnerXmlなメッセージが表示されます。Now when you ask for the InnerXml you get back the following:

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

挿入された項目が、名前空間のないドキュメントからのものであることを明示的に指定する場合は、xmlns = "" 宣言を手動で追加し、結果の文字列を挿入する必要があります。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>  

これにより、次のような効果が得られます。The net effect of all this is as follows:

  1. 名前空間をInnerXml使用しないドキュメントの切り取りと貼り付けはクリーンでシンプルであり、文字列に "xmlns" の冗長性は作成されません。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. InnerXmlまた、を使用して、複数の名前空間 (XSL スタイルシート) を持つドキュメント間で切り取りと貼り付けを行うこともできます。InnerXml can also be used to cut and paste between documents which have more than one namespace (that is XSL stylesheets).

  3. xmlns: xsl 宣言は、自動的に文字列内に表示され、ノード階層内で非表示になります。xmlns:xsl declarations automatically appear in your strings and disappear in your node hierarchies.

  4. 既定の名前空間を持たないInnerXmlドキュメントから既定の名前空間を持つドキュメントに移動する場合、新しいノードは新しい既定の名前空間を選択します。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.

InnerXml 、ドキュメントで現在定義されていないエンティティ参照を含むテキストで設定されている場合、結果のツリーに空の EntityReference ノードが含まれます。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.

このプロパティは、ドキュメント オブジェクト モデル (DOM) の Microsoft 拡張機能です。This property is a Microsoft extension to the Document Object Model (DOM).

適用対象