Skip to Content
PowerShellクックブック 第4版
book

PowerShellクックブック 第4版

by Lee Holmes
March 2025
Intermediate to advanced
1002 pages
14h 55m
Japanese
O'Reilly Media, Inc.
Content preview from PowerShellクックブック 第4版

第10章 構造化ファイル 構造化ファイル

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

10.0 はじめに

テキストだけのシステム管理の世界では、構造化ファイルの管理はしばしば面倒だ。例えば、XMLファイルを扱う(あるいは編集する)には、それをエディタに読み込ませて手作業で修正するか、あるいはそれを行うカスタム・ツールを書くことになる。さらに悪いことに、XML自体の構造を壊さないようにしながら、ファイルをプレーン・テキストのように修正することもある。

同じ世界で、カンマ区切り値(CSV)形式のファイルを扱うということは、カンマで各行を区切りながら、自分でファイルを見ていくということだ。単純なデータ以外を発見するまでは、一見素晴らしいアプローチだ。

構造や構造化ファイルは、他のプログラミングからだけもたらされるものではない。スクリプトを書いていると、構造化されたデータを保存して、後で使えるようにすることが一つの共通の目標になる。ほとんどのスクリプト(およびプログラミング)言語では、そのためには、データを保持するためのデータ構造を設計し、ディスクからデータをストアしたり取り出したりする方法を設計し、再びデータを扱いたいときにユーザビリティのある形に戻す必要がある。

幸いなことに、XML、CSV、そして独自の構造化ファイルを扱うのも、PowerShellを使えばずっと簡単になる。

10.1 XMLファイルのアクセス情報

問題

、XMLファイル内の情報にアクセスしたい。

解決策

PowerShellのXMLキャストを使って、プレーンテキストのXMLを、より簡単に作業できる形に変換する。今回は、PowerShellブログからダウンロードしたRSSフィードを使用する:

PS > $xml = [xml] (Get-Content powershell_blog.xml)

PowerShellを使ってこのファイルをダウンロードする方法の詳細については、レシピ12.1を参照のこと:

Invoke-WebRequest https://devblogs.microsoft.com/powershell/feed/ `
    -OutFile powershell_blog.xml

他のリッチ・オブジェクトと同様に、PowerShellはXMLのプロパティを探索しながら表示する。例10-1に示すように、これらのプロパティはXMLの子ノードと属性である。

例 10-1. XMLドキュメントのプロパティにアクセスする
PS > $xml
xml                     xml-stylesheet            rss
---                     --------------            ---
                                                  rss

PS > $xml.rss

version : 2.0
dc      : http://purl.org/dc/elements/1.1/
slash   : http://purl.org/rss/1.0/modules/slash/
wfw     : http://wellformedweb.org/CommentAPI/
channel : channel

RSSフィードのアイテムノードのように)複数のノードが同じ名前を共有する場合、プロパティ名はノードのコレクションを表す:

PS > ($xml.rss.channel.item).Count
15

例10-2に示すように、通常配列を扱うように、それらの項目に個別にアクセスすることができる。

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

生成AI時代の新プログラミング実践ガイド Pythonで学ぶGPTとCopilotの活用ベストプラクティス

生成AI時代の新プログラミング実践ガイド Pythonで学ぶGPTとCopilotの活用ベストプラクティス

松本 直樹
デジタルアイデンティティのすべて ―安全かつユーザー中心のアイデンティティシステムを実現するための知識

デジタルアイデンティティのすべて ―安全かつユーザー中心のアイデンティティシステムを実現するための知識

Phillip J. Windley, Drummond Reed, 富士榮 尚寛, 柴田 健久, 花井 杏夏, 宮崎 貴暉, 塚越 雄登, 田島 太朗, 名古屋 謙彦, 村尾 進一, 瀬在 翔太, 松本 優大, 安永 未来, 池谷 亮平
Pythonクイックリファレンス 第4版

Pythonクイックリファレンス 第4版

Alex Martelli, Anna Martelli Ravenscroft, Steve Holden, Paul McGuire, 鈴木 駿, 株式会社クイープ

Publisher Resources

ISBN: 9798341626737