窓辺の小石 第177回 アキレウスのかかと
マイナビニュース / 2024年8月2日 14時24分
Microsoftがシェルやシステムスクリプト用として開発したPowerShellにも「弱点」がある。たとえば、PowerShellは、XMLの扱いが苦手だ。いや、簡単に読み込んでアクセスできるだろう? と言われるかもしれない。PowerShellには、JSONやCSVとPowerShellのPSCustomObjectオブジェクト間で変換が行えるのに、XMLは変換が行えず、.NET側のオブジェクトをそのまま扱うことしかできない。
PowerShellは、プロパティなどの「名前」で大文字小文字を区別しない。これに対して、XMLでは、大文字小文字が区別される。このため、XMLをPowerShellのオブジェクトに変換すると、大文字と小文字の区別が失われてしまう。
大文字小文字を区別しないので、変数やプロパティ名で大文字小文字を間違えてもエラーにはならない。Windowsのファイル名と同じく、ユーザーが入力した大文字、小文字の区別は残る。このため、変数を定義するときに「$MyVar」としても、「$myvar」でアクセスできてしまう。プロパティ名なども同様で、大文字小文字が区別されない。エラーを減らすという点では効果はあると思われる。定義時には、大文字小文字を使ったキャメルケースなどで変数を定義しても、あとでアクセスするときには、それを忘れて小文字だけで入力してしまうことがある。シェルという使い方を考えると「便利」といえば「便利」である。
しかし、大文字小文字を区別すると不便で使いにくいのか? というとそうでもない。たとえば、Linuxでよく使われるbashなどUnix/Linux系では、昔から大文字小文字は区別されてきた。その上で、環境変数は大文字だけ使いましょう、ローカルの変数は小文字だけにしましょう、みたいな慣習があった。大文字小文字の区別があることは、それほど不便な感じはなかったし、大文字小文字を区別する言語も少なくないので、違和感も感じない。
具体的な例を見てみることにしよう。以下のリストは、テスト用のXMLをヒアドキュメントで入力して、アクセスするもの。
[xml]$xml=@"
"@
簡易な方法でアクセスしてみる。「$xml.main.sub」と入力すると、subタグとSUBタグは同一視されて2つの結果が出力される(写真01)。また、この方法では、タグと属性はともにプロパティとしてアクセスする。たとえば、subタグのid属性値は「$xml.main.sub.id」でアクセスする。
この記事に関連するニュース
-
窓辺の小石 第175回 Stream form Outer Network
マイナビニュース / 2024年7月19日 17時43分
-
日本語かなキーボードで「全角英文字」をサクサク入力するには? - いまさら聞けないiPhoneのなぜ
マイナビニュース / 2024年7月18日 11時15分
-
対応言語にPython、生成AIによるシナリオ作成機能も加わる「WinActor Ver.7.5.0」
マイナビニュース / 2024年7月12日 11時59分
-
今更more.comを使うのか!? Windowsでのページングを考える
ASCII.jp / 2024年7月10日 12時0分
-
英語で「大文字」はなんて言う?
OTONA SALONE / 2024年7月7日 12時30分
ランキング
-
1「天才では?」「早く知りたかった」 悪魔的発想の“ゆで卵の食べ方”がうまそうすぎると話題 「一生コレで食べてる」
ねとらぼ / 2024年8月2日 7時15分
-
2「泣きそう」「生きるって尊い」 HIKAKIN、“衝撃の重大発表”にネット感涙 「安心と感動がすごい」「本当におめでとうございます」
ねとらぼ / 2024年8月1日 22時1分
-
3専用ACアダプターとはオサラバ USB Type-C to DC変換ケーブル
ASCII.jp / 2024年8月2日 18時30分
-
4偽Google多要素認証アプリに注意、最近インストールした場合は確認を
マイナビニュース / 2024年8月2日 12時56分
-
5“北九州のソウルフード”資さんうどん、東京1号店は両国&今冬オープン 初上陸に歓喜の声
iza(イザ!) / 2024年8月2日 13時56分
複数ページをまたぐ記事です
記事の最終ページでミッション達成してください
![](/pc/img/mission/mission_close_icon.png)