Поделиться через


XmlNode.InnerXml Свойство

Определение

Получает или задает разметку, представляющую только дочерние узлы этого узла.

public:
 virtual property System::String ^ InnerXml { System::String ^ get(); void set(System::String ^ value); };
public virtual string InnerXml { get; set; }
member this.InnerXml : string with get, set
Public Overridable Property InnerXml As String

Значение свойства

Разметка дочерних узлов этого узла, не включая атрибуты по умолчанию.

Исключения

Задание этого свойства на узле, который не может иметь дочерние узлы.

XML, указанный при настройке этого свойства, не является хорошо сформированным.

Примеры

В следующем примере сравниваются InnerText свойства и InnerXml свойства.

using System;
using System.Xml;
public class Test {

  public static void Main() {
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<root>"+
                "<elem>some text<child/>more text</elem>" +
                "</root>");

    XmlNode elem = doc.DocumentElement.FirstChild;

    // Note that InnerText does not include the markup.
    Console.WriteLine("Display the InnerText of the element...");
    Console.WriteLine( elem.InnerText );

    // InnerXml includes the markup of the element.
    Console.WriteLine("Display the InnerXml of the element...");
    Console.WriteLine(elem.InnerXml);

    // Set InnerText to a string that includes markup.
    // The markup is escaped.
    elem.InnerText = "Text containing <markup/> will have char(<) and char(>) escaped.";
    Console.WriteLine( elem.OuterXml );

    // Set InnerXml to a string that includes markup.
    // The markup is not escaped.
    elem.InnerXml = "Text containing <markup/>.";
    Console.WriteLine( elem.OuterXml );
  }
}
Imports System.Xml

public class Test

  public shared sub Main()

    Dim doc as XmlDocument = new XmlDocument()
    doc.LoadXml("<root>"& _
                "<elem>some text<child/>more text</elem>" & _
                "</root>")

    Dim elem as XmlNode = doc.DocumentElement.FirstChild

    ' Note that InnerText does not include the markup.
    Console.WriteLine("Display the InnerText of the element...")
    Console.WriteLine( elem.InnerText )

    ' InnerXml includes the markup of the element.
    Console.WriteLine("Display the InnerXml of the element...")
    Console.WriteLine(elem.InnerXml)

    ' Set InnerText to a string that includes markup.  
    ' The markup is escaped.
    elem.InnerText = "Text containing <markup/> will have char(<) and char(>) escaped."
    Console.WriteLine( elem.OuterXml )

    ' Set InnerXml to a string that includes markup.  
    ' The markup is not escaped.
    elem.InnerXml = "Text containing <markup/>."
    Console.WriteLine( elem.OuterXml )
    
  end sub
end class

Комментарии

Попытка задать это свойство из узла, который не может иметь дочерние узлы, например текстовый узел, вызывает исключение. В противном случае параметр InnerXml заменяет дочерние узлы узла синтаксического содержимого заданной строки. Синтаксический анализ выполняется в текущем контексте пространства имен.

Это свойство является расширением Майкрософт для объектной модели документов (DOM).

Замечание

InnerXml не является эффективным способом изменения DOM. При замене сложных узлов могут возникнуть проблемы с производительностью. Более эффективно создавать узлы и использовать такие методы, как InsertBefore, InsertAfterAppendChildи RemoveChild изменять xml-документ.

Применяется к