네임스페이스를 사용하여 XML 요소를 쿼리할 때 NullPointerException을 방지하는 방법은 무엇입니까?
Jan 05, 2025 pm 01:39 PMXDocument에서 XML 네임스페이스 처리
네임스페이스가 포함된 XML 문서로 작업할 때 쿼리 요소가 null 값을 반환하는 경우가 발생할 수 있습니다. 이는 XML 네임스페이스가 제대로 처리되지 않을 때 발생할 수 있습니다.
다음 XML 조각을 고려하세요.
<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"> <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"> <EventID>589828</EventID> <Correlation ActivityID="{00000000-0000-0000-0000-000000000000}"><!--Value to be extracted--> <VirtualPath>/Service.svc</VirtualPath> </Correlation> </System> </E2ETraceEvent>
Correlation 요소를 쿼리하고 해당 ActivityID를 추출하려고 시도하는 다음 코드가 있다고 가정합니다. 속성 값:
XDocument xDoc = XDocument.Parse(xmlString); XElement xEl1 = xDoc.Element("E2ETraceEvent"); XElement xEl2 = xEl1.Element("System"); XElement xEl3 = xEl2.Element("Correlation"); // NullPointerException can occur here XAttribute xAtt1 = xEl3.Attribute("ActivityID"); String sValue = xAtt1.Value;
네임스페이스를 처리하지 않고 이 코드를 실행하면 xEl3에 대한 null 참조가 반환됩니다. Element() 메소드는 네임스페이스를 고려하지 않고 이름과 일치하는 요소를 찾습니다. 이 문제를 해결하려면 네임스페이스를 쿼리에 통합해야 합니다.
XNamespace nsSys = "http://schemas.microsoft.com/2004/06/windows/eventlog/system"; XElement xEl2 = xDoc.Element(nsSys + "System"); XElement xEl3 = xEl2.Element(nsSys + "Correlation"); XAttribute xAtt1 = xEl3.Attribute("ActivityID"); String sValue = xAtt1.Value;
XNamespace 클래스를 사용하여 네임스페이스를 표시하면 Element() 메서드가 네임스페이스 내의 요소를 올바르게 식별할 수 있습니다. 이 예에서 nsSys는 System 요소의 네임스페이스를 나타냅니다.
요약하자면, 네임스페이스가 포함된 XML 문서를 처리할 때 요소를 쿼리하는 동안 null 참조를 방지하려면 네임스페이스를 올바르게 처리하는 것이 중요합니다. XNamespace 클래스를 사용하고 이를 Element() 메서드에 통합하면 요소와 해당 속성에 정확하게 액세스할 수 있습니다.
위 내용은 네임스페이스를 사용하여 XML 요소를 쿼리할 때 NullPointerException을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C 언어 함수에 의해 반환 된 값 유형은 무엇입니까? 반환 값을 결정하는 것은 무엇입니까?

STL (정렬, 찾기, 변환 등)의 알고리즘을 효율적으로 사용하려면 어떻게합니까?
