C# Tips | XML・設定ファイル:XPathで検索する

C# C#
スポンサーリンク
スポンサーリンク

業務で「XPathで検索する」ユーティリティが役に立つ場面をイメージする

業務・実務でC#を使っている読者のみなさんにとって、XMLは設定ファイルや外部システム連携などでよく登場します。 そのXMLの中から「特定の条件に合う要素だけを取り出したい」「深い階層の値を簡単に検索したい」という場面は少なくありません。

そこで便利なのが XPath です。

XPathは一言でいうと、

XMLの中を「パス指定」や「条件指定」で検索するためのミニ言語

です。

C#からXPathを使うことで、

  • 特定のタグ名の要素をまとめて取得する
  • 属性値で絞り込む
  • 階層構造を意識せずに「欲しい要素だけ」を検索する

といったことが簡単にできるようになります。

ここでは、プログラミング初心者の方にも分かるように、 XPathの基本から、業務で使えるユーティリティ化までを ステップバイステップで解説していきます。

ステップ1:まずXMLとXPathの関係をざっくり理解する

例として設定ファイルのXMLを用意する

次のような設定ファイルをイメージしてください。

<Settings>
  <Database name="MainDb">
    <Server>db01.example.com</Server>
    <User>appuser</User>
    <Password>P@ssw0rd</Password>
  </Database>
  <Database name="LoggingDb">
    <Server>logdb.example.com</Server>
    <User>loguser</User>
    <Password>LogP@ss</Password>
  </Database>
  <FeatureFlags>
    <Feature name="NewUI" enabled="true" />
    <Feature name="Logging" enabled="false" />
  </FeatureFlags>
</Settings>

このXMLから、例えば次のような検索をしたくなる場面があります。

  • name="MainDb"<Database> 要素だけを取り出したい
  • enabled="true"<Feature> 要素だけを一覧で取得したい
  • すべての <Server> 要素の値を取得したい

こうした「条件付き検索」を、 XPathを使うと短い式で表現できます。

タイトルとURLをコピーしました