ホームページ > バックエンド開発 > C++ > XML 名前空間で LINQ to XML を正しく使用するにはどうすればよいですか?

XML 名前空間で LINQ to XML を正しく使用するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-19 02:18:09
オリジナル
428 人が閲覧しました

How to Correctly Use LINQ to XML with XML Namespaces?

LINQ to XML を使用して XML 名前空間を処理する

この記事では、LINQ to XML を使用して名前空間を含む XML を処理するときに、不適切な名前空間処理によって生じる結果の違いの問題を回避する方法について説明します。

最初の XML 文字列には名前空間宣言が含まれていますが、2 番目の 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 の 2 つの名前空間に対応する 2 つの名前空間 nsnsa を定義します。 LINQ クエリで要素を参照する場合、これらの名前空間を要素名の前に追加します。

このアプローチにより、LINQ to XML は、対応する名前空間内の要素を正しく識別してアクセスし、どの XML 文字列が使用されるかに関係なく、一貫した期待どおりの結果を保証します。

以上がXML 名前空間で LINQ to XML を正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート