XmlDocument.InnerXml 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定表示目前節點子系的標記。
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
屬性值
目前節點子系的標記。
例外狀況
未正確設定這個屬性之語式時所指定的 XML。
備註
設定這個屬性會將節點的子系取代為指定字串的已剖析內容。 剖析會在目前命名空間內容中完成。
InnerXml
會移除多餘的命名空間宣告。 因此,大量的剪貼作業並不會因為有多餘的命名空間宣告,而增加文件大小。 請考慮下列 XSL 檔:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="stock">
...
</xsl:template>
</xsl:stylesheet>
InnerXml
樣式表單節點上的 屬性會傳回下列字串:
<xsl:template match="stock"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:template>
請注意用來保留節點識別的其他 xmlns:xsl 命名空間宣告。 如果您重新插入此內部 XML 字串,將會傳回原始檔案。 換句話說, InnerXml
會辨識 xmlns:xsl 命名空間宣告是多餘的,因為父 xsl:stylesheet 元素已經有 xmlns:xsl 命名空間宣告,因此會移除它。
如果您從沒有預設命名空間的檔移至 InnerXml
具有預設命名空間的檔,則行為稍有不同。 請考慮下列 XML 字串:
<test>
<item>123</item>
</test>
InnerXml
會傳回不含命名空間宣告的純文字 XML 字串:
<item>123</item>
如果您接著將此字串插入具有預設命名空間的檔,例如:
<test2 xmlns="urn:1">
</test>
InnerXml
剖析內容中的字串,而新的節點會挑選 urn:1 命名空間。 結果如下所示:
<test2 xmlns="urn:1">
<item>123</item>
</test>
現在當您要求 取得 InnerXml
下列專案時:
<item xmlns="urn:1">123</item>
如果您明確希望插入的專案保留它來自沒有命名空間的檔,則需要手動新增 xmlns= 「」 宣告,並插入產生的字串:
<item xmlns="">123</item>
這一切的淨效果如下:
在不使用命名空間的檔之間剪下和貼
InnerXml
上是簡潔且簡單的,而且不會在您的字串中建立「xmlns」 備援。InnerXml
也可以用來剪下並貼上具有多個命名空間的檔 (為 XSL 樣式表單) 。xmlns:xsl 宣告會自動出現在您的字串中,並在節點階層中消失。
如果您要從沒有預設命名空間的檔移至
InnerXml
具有預設命名空間的檔,新的節點將會挑選新的預設命名空間。
如果 InnerXml
設定為包含檔中目前未定義的實體參考的文字,則產生的樹狀結構將包含空的 EntityReference 節點。
這個屬性是文件物件模型的 Microsoft 擴充功能。