다음과 같이 XElement를 사용하여 접두사가 붙은 네임스페이스가 있는 XML 문서를 생성하려고 하면
<sphinx:docset> <sphinx:schema> <sphinx:field name="subject"/> <sphinx:field name="content"/> <sphinx:attr name="published" type="timestamp"/> </sphinx:schema> </sphinx:docset>
예외가 발생할 수 있습니다. 이름에 콜론 문자가 허용되지 않는다고 명시되어 있습니다. 이 포괄적인 답변은 이 문제를 해결하기 위한 자세한 설명과 솔루션을 제공합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!