다음을 통해 공유


XmlDocument.InnerXml 속성

정의

현재 노드의 자식을 나타내는 태그를 가져오거나 설정합니다.

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>

stylesheet 노드의 속성은 InnerXml 다음 문자열을 반환합니다.

<xsl:template match="stock"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     ...
    </xsl:template>

노드 ID를 유지하는 데 사용되는 추가 xmlns:xsl 네임스페이스 선언을 확인합니다. 이 내부 XML 문자열을 다시 삽입하면 원래 문서를 다시 가져옵니다. 즉, InnerXml 부모 xsl:stylesheet 요소에 이미 xmlns:xsl 네임스페이스 선언이 있으므로 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>

이 모든 것의 순 효과는 다음과 같습니다.

  1. 네임스페이스를 사용하지 않는 문서 간에 잘라내고 붙여 InnerXml 넣는 것은 깨끗하고 간단하며 문자열에 "xmlns" 중복성을 만들지 않습니다.

  2. InnerXml 는 둘 이상의 네임스페이스가 있는 문서(즉, XSL 스타일시트)를 잘라내고 붙여넣는 데 사용할 수도 있습니다.

  3. xmlns:xsl 선언은 문자열에 자동으로 표시되고 노드 계층에서 사라집니다.

  4. 기본 네임스페이스가 없는 문서에서 기본 네임스페이스가 있는 문서로 이동하는 InnerXml 경우 새 노드가 새 기본 네임스페이스를 선택합니다.

현재 문서에 정의되지 않은 엔터티 참조가 포함된 텍스트로 가 설정된 경우 InnerXml 결과 트리에는 빈 EntityReference 노드가 포함됩니다.

이 속성은 DOM(문서 개체 모델)에 대한 Microsoft 확장입니다.

적용 대상