이 문서에서는 LINQ to XML을 사용하여 네임스페이스가 포함된 XML을 처리할 때 부적절한 네임스페이스 처리로 인해 발생하는 결과 차이 문제를 방지하는 방법에 대해 설명합니다.
첫 번째 XML 문자열에는 네임스페이스 선언이 포함되어 있지만 두 번째 XML 문자열에는 포함되어 있지 않습니다. 기본적으로 LINQ to XML은 기본 네임스페이스를 가정하지만 이는 XML 구조와 일치하지 않습니다.
LINQ to XML을 올바르게 사용하여 xmlns
속성이 포함된 XML을 처리하려면 아래 방법을 따르십시오.
<code class="language-csharp">XDocument xmlElements = XDocument.Parse(theXml); // 定义命名空间 XNamespace ns = "http://myvalue.com"; XNamespace nsa = "http://schemas.datacontract.org/2004/07/My.Namespace"; // 在引用元素时使用命名空间 var elements = from data in xmlElements.Descendants(ns + "Result") select new { TheBool = (bool)data.Element(nsa + "TheBool"), TheId = (int)data.Element(nsa + "TheId"), }; // 迭代结果 foreach (var element in elements) { Console.WriteLine(element.TheBool); Console.WriteLine(element.TheId); }</code>
이 예에서는 XML의 두 네임스페이스에 해당하는 두 개의 네임스페이스 ns
및 nsa
를 정의합니다. LINQ 쿼리에서 요소를 참조할 때 이러한 네임스페이스를 요소 이름 앞에 추가합니다.
이 접근 방식을 사용하면 LINQ to XML은 해당 네임스페이스 내의 요소를 올바르게 식별하고 액세스하므로 어떤 XML 문자열을 사용하든 일관되고 예상되는 결과를 보장합니다.
위 내용은 XML 네임스페이스와 함께 LINQ to XML을 올바르게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!