>백엔드 개발 >C++ >.NET의 직렬화된 XML에서 모든 네임스페이스를 제거하는 방법은 무엇입니까?

.NET의 직렬화된 XML에서 모든 네임스페이스를 제거하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-04 04:23:43822검색

How to Remove All Namespaces from Serialized XML in .NET?

.NET의 직렬화된 XML에서 모든 네임스페이스 제거

객체를 XML로 직렬화하는 과정에서 다음과 같은 네임스페이스를 접하는 것이 일반적입니다. 직렬화된 문서에 "xsi" 및 "xsd"가 추가됩니다. 이러한 네임스페이스는 혼란과 복잡성의 원인이 될 수 있습니다.

제공된 코드 조각은 OmitXmlDeclaration 플래그를 설정하여 XML 네임스페이스를 생략하려고 시도합니다. 그러나 결과 XML에는 여전히 xsi 및 xsd 네임스페이스가 포함됩니다. 이러한 네임스페이스를 완전히 제거하려면 추가 단계가 필요합니다.

해결책은 빈 XmlSerializerNamespaces 개체를 정의하고 이를 Serialize 메서드에 전달하는 것입니다.

...
XmlSerializer s = new XmlSerializer(objectToSerialize.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", "");  // Add an empty namespace for each prefix
s.Serialize(xmlWriter, objectToSerialize, ns);

이 코드는 빈 네임스페이스를 XML 문서에서 접두사 또는 네임스페이스 선언을 효과적으로 제거합니다. 결과적으로 직렬화된 문서에는 깨끗한 네임스페이스 속성이 없는 태그:

<message>
 ...
</message>

위 내용은 .NET의 직렬화된 XML에서 모든 네임스페이스를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.