XmlDocument.InnerXml Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta il markup che rappresenta gli elementi figlio del nodo corrente.
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
Valore della proprietà
Markup degli elementi figlio del nodo corrente.
Eccezioni
Il formato del file XML specificato al momento dell'impostazione della proprietà non è corretto.
Commenti
L'impostazione di questa proprietà sostituisce gli elementi figlio del nodo con il contenuto analizzato della stringa specificata. L'analisi viene eseguita nel contesto dello spazio dei nomi corrente.
InnerXml
rimuove le dichiarazioni dello spazio dei nomi ridondanti. Di conseguenza, anche in caso di numerose operazioni di taglia e incolla, le dimensioni del documento non aumenteranno a causa di dichiarazioni ridondanti dello spazio dei nomi. Si consideri il documento XSL seguente:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="stock">
...
</xsl:template>
</xsl:stylesheet>
La InnerXml
proprietà nel nodo del foglio di stile restituisce la stringa seguente:
<xsl:template match="stock"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
...
</xsl:template>
Si noti la dichiarazione dello spazio dei nomi xmlns:xsl aggiuntiva usata per mantenere l'identità del nodo. Se si reinserirà questa stringa XML interna, verrà restituito il documento originale. In altre parole, InnerXml
riconosce che la dichiarazione dello spazio dei nomi xmlns:xsl è ridondante, dato che l'elemento padre xsl:stylesheet dispone già della dichiarazione dello spazio dei nomi xmlns:xsl e la rimuove.
Se si passa InnerXml
da un documento senza spazio dei nomi predefinito a un documento con uno spazio dei nomi predefinito, il comportamento è leggermente diverso. Si consideri la stringa XML seguente:
<test>
<item>123</item>
</test>
InnerXml
restituisce una stringa XML normale senza dichiarazioni di spazio dei nomi:
<item>123</item>
Se quindi si inserisce questa stringa in un documento con uno spazio dei nomi predefinito, ad esempio quanto segue:
<test2 xmlns="urn:1">
</test>
InnerXml
analizza la stringa nel contesto e i nuovi nodi selezionano lo spazio dei nomi urn:1. Il risultato è simile al seguente:
<test2 xmlns="urn:1">
<item>123</item>
</test>
A questo momento, quando si chiede di InnerXml
ottenere di nuovo quanto segue:
<item xmlns="urn:1">123</item>
Se si vuole che l'elemento inserito mantenga in modo esplicito il fatto che provenisse da un documento senza spazio dei nomi, è necessario aggiungere manualmente una dichiarazione xmlns= "" e inserire la stringa risultante:
<item xmlns="">123</item>
L'effetto netto di tutto ciò è il seguente:
Il taglio e incolla tra
InnerXml
i documenti che non usano spazi dei nomi è pulito e semplice e non crea ridondanza "xmlns" nelle stringhe.InnerXml
può essere usato anche per tagliare e incollare tra documenti con più spazi dei nomi (ovvero fogli di stile XSL).Le dichiarazioni xmlns:xsl vengono visualizzate automaticamente nelle stringhe e scompaiono nelle gerarchie del nodo.
Nel caso in cui si passi
InnerXml
da un documento senza spazio dei nomi predefinito a un documento con uno spazio dei nomi predefinito, i nuovi nodi selezioneranno il nuovo spazio dei nomi predefinito.
Se InnerXml
è impostato con testo contenente riferimenti a entità non definiti nel documento, l'albero risultante conterrà nodi EntityReference vuoti.
Questa proprietà è un'estensione Microsoft di Document Object Model (DOM).