> 백엔드 개발 > C++ > XML 문서를 만들 때 XElement에서 네임스페이스를 올바르게 처리하는 방법은 무엇입니까?

XML 문서를 만들 때 XElement에서 네임스페이스를 올바르게 처리하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-28 17:22:10
원래의
617명이 탐색했습니다.

How to Properly Handle Namespaces in XElement When Creating XML Documents?

XElement 네임스페이스 설명

다음과 같이 XElement를 사용하여 접두사가 붙은 네임스페이스가 있는 XML 문서를 생성하려고 하면

<sphinx:docset>
  <sphinx:schema>
    <sphinx:field name="subject"/>
    <sphinx:field name="content"/>
    <sphinx:attr name="published" type="timestamp"/>
  </sphinx:schema>
</sphinx:docset>
로그인 후 복사

예외가 발생할 수 있습니다. 이름에 콜론 문자가 허용되지 않는다고 명시되어 있습니다. 이 포괄적인 답변은 이 문제를 해결하기 위한 자세한 설명과 솔루션을 제공합니다.

XElement의 네임스페이스 요소

LINQ to XML에서는 네임스페이스 요소를 만드는 것이 간단합니다.

XNamespace ns = "sphinx";
XElement element = new XElement(ns + "docset");
로그인 후 복사

이 접근 방식은 명시적인 네임스페이스 선언 없이 XML을 생성합니다.

<sphinx:docset/>
로그인 후 복사

네임스페이스

별칭이 올바르게 작동하도록 하고 명시적인 네임스페이스 선언을 사용하여 XML을 생성하려면 다음 단계를 따르세요.

XNamespace ns = "http://url/for/sphinx";
XElement element = new XElement("container",
    new XAttribute(XNamespace.Xmlns + "sphinx", ns),
    new XElement(ns + "docset",
        new XElement(ns + "schema"),
            new XElement(ns + "field", new XAttribute("name", "subject")),
            new XElement(ns + "field", new XAttribute("name", "content")),
            new XElement(ns + "attr", 
                         new XAttribute("name", "published"),
                         new XAttribute("type", "timestamp"))));
로그인 후 복사

이 코드는 원하는 네임스페이스 선언을 사용하여 XML을 생성합니다.

<container xmlns:sphinx="http://url/for/sphinx">
  <sphinx:docset>
    <sphinx:schema>
      <sphinx:field name="subject"/>
      <sphinx:field name="content"/>
      <sphinx:attr name="published" type="timestamp"/>
    </sphinx:schema>
  </sphinx:docset>
</container>
로그인 후 복사

요약하자면, LINQ to XML에서 네임스페이스 요소를 만드는 것은 쉽습니다. 다음 단계를 수행하면 XML 데이터 작업 시 네임스페이스 선언을 효과적으로 처리할 수 있습니다.

위 내용은 XML 문서를 만들 때 XElement에서 네임스페이스를 올바르게 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿