ホームページ >バックエンド開発 >C++ >複数の名前空間を持つ XML ドキュメントから属性値を抽出する方法

複数の名前空間を持つ XML ドキュメントから属性値を抽出する方法

DDD
DDDオリジナル
2024-12-28 19:35:17770ブラウズ

How to Extract Attribute Values from XML Documents with Multiple Namespaces?

XDocument Extraction での複数の名前空間

このコードは、複数の名前空間を含む XML ドキュメントに移動して情報を抽出することを目的としています。これは、「Correlation」要素内の「ActivityID」属性の値を取得することに重点を置いています。ただし、コードをそのまま使用しようとすると、名前空間を手動で削除しない限り、null 値が発生する可能性があります。

解決策: 名前空間の使用

この問題を処理するには、コードに名前空間を組み込む必要があります。 XML の名前空間は、異なるスキーマが使用されている場合に重複する可能性のある要素と属性の名前を曖昧さをなくすのに役立ちます。

名前空間を使用したコード

これは、必要な名前空間宣言を含む変更されたコードです。 :

    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;

要素名の前に名前空間を付加することで、コードが正しく識別できるようになります。

結論

XML ドキュメントを扱う場合、名前空間とその使用法を理解することが重要です。名前空間の処理をコードに組み込むことで、複雑な XML 構造を効果的にナビゲートして情報を抽出できます。

以上が複数の名前空間を持つ XML ドキュメントから属性値を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。