XDocument에서 네임스페이스를 사용하여 XML 탐색
네임스페이스가 포함된 XML로 작업할 때 XDocument의 요소 쿼리에 미치는 영향을 고려하는 것이 중요합니다. 기본적으로 XDocument 요소는 네임스페이스를 고려하지 않고 쿼리됩니다. 제공된 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}" /> </System> </E2ETraceEvent>
이 시나리오에서 다음 코드는 네임스페이스의 존재로 인해 xEl1에 대해 null을 반환합니다.
XDocument xDoc = XDocument.Parse(CurrentString); XElement xEl1 = xDoc.Element("E2ETraceEvent");
네임스페이스 문제 해결
네임스페이스가 있는 XML을 올바르게 탐색하려면 XNamespace 클래스. XNamespace는 네임스페이스를 지정하고 쿼리 중에 이를 요소 이름과 결합하는 방법을 제공합니다. 수정된 코드는 다음과 같습니다.
XNamespace nsSys = "http://schemas.microsoft.com/2004/06/windows/eventlog/system"; XElement xEl2 = xDoc.Element(nsSys + "System");
이제 xEl2에는 지정된 네임스페이스를 가진 System 요소가 포함됩니다. 관련 네임스페이스를 통합하여 비슷한 방식으로 XML 트리를 계속 탐색할 수 있습니다.
추가 참고 사항
위 내용은 XDocument를 사용하여 네임스페이스가 있는 XML 요소를 효과적으로 쿼리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!