XmlDocument.InnerXml Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur markup yang mewakili turunan simpul saat ini.
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
Nilai Properti
Markup turunan dari simpul saat ini.
Pengecualian
XML yang ditentukan saat mengatur properti ini tidak terbentuk dengan baik.
Keterangan
Mengatur properti ini menggantikan turunan simpul dengan isi yang diurai dari string yang diberikan. Penguraian dilakukan dalam konteks namespace saat ini.
InnerXml menghapus deklarasi namespace redundan. Akibatnya, banyak operasi salin dan tempel tidak menambah ukuran dokumen Anda akibat deklarasi namespace yang berlebihan. Pertimbangkan dokumen XSL berikut:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="stock">
...
</xsl:template>
</xsl:stylesheet>
Properti InnerXml pada simpul lembar gaya mengembalikan string berikut:
<xsl:template match="stock"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:template>
Perhatikan deklarasi namespace xmlns:xsl tambahan yang digunakan untuk mempertahankan identitas simpul. Jika Anda menyisipkan kembali string XML dalam ini, Anda akan mendapatkan kembali dokumen asli Anda. Dengan kata lain, InnerXml mengenali bahwa deklarasi namespace xmlns:xsl berlebihan, mengingat elemen xsl:stylesheet induk sudah memiliki deklarasi namespace xmlns:xsl, dan karenanya menghapusnya.
Jika Anda berpindah InnerXml dari dokumen tanpa namespace default ke dokumen dengan namespace default, perilakunya sedikit berbeda. Pertimbangkan string XML berikut:
<test>
<item>123</item>
</test>
InnerXml mengembalikan string XML biasa tanpa deklarasi namespace:
<item>123</item>
Jika Anda kemudian menyisipkan string ini ke dalam dokumen yang memang memiliki namespace default, seperti berikut ini:
<test2 xmlns="urn:1">
</test>
InnerXml mengurai string dalam konteks, dan simpul baru mengambil namespace urn:1. Hasilnya terlihat seperti ini:
<test2 xmlns="urn:1">
<item>123</item>
</test>
Sekarang ketika Anda meminta InnerXml Anda mendapatkan kembali yang berikut:
<item xmlns="urn:1">123</item>
Jika Anda secara eksplisit ingin item yang disisipkan mempertahankan fakta bahwa item tersebut berasal dari dokumen yang tidak memiliki namespace maka Anda perlu menambahkan xmlns= deklarasi "" secara manual dan menyisipkan string yang dihasilkan:
<item xmlns="">123</item>
Efek bersih dari semua ini adalah sebagai berikut:
Pemotongan dan penempelan
InnerXmldi antara dokumen yang tidak menggunakan namespace bersih dan sederhana dan tidak membuat redundansi "xmlns" dalam string Anda.InnerXmljuga dapat digunakan untuk memotong dan menempel di antara dokumen yang memiliki lebih dari satu namespace (yaitu lembar gaya XSL).deklarasi xmlns:xsl secara otomatis muncul di string Anda dan menghilang dalam hierarki simpul Anda.
Jika Anda berpindah
InnerXmldari dokumen yang tidak memiliki namespace default ke dokumen yang memang memiliki namespace default, simpul baru akan mengambil namespace default baru.
Jika InnerXml diatur dengan teks yang berisi referensi entitas yang saat ini tidak ditentukan dalam dokumen, pohon yang dihasilkan akan berisi simpul EntityReference kosong.
Properti ini adalah ekstensi Microsoft ke Model Objek Dokumen (DOM).