Fish Shell:
XMLの扱い方

方法:

Fishには組み込みのXML解析がないため、xmllintxmlstarletのような外部ツールに依存します。値を読み取るためのスニペットはこちらです:

# xmlstarletを使用してXMLを解析
echo '<root><element>Hello World</element></root>' | xmlstarlet sel -t -v "/root/element"

出力:

Hello World

XMLを編集するには、これを使用します:

# xmlstarletを使用してXML要素を編集
echo '<root><element>Old Value</element></root>' | xmlstarlet ed -u "/root/element" -v 'New Value'

出力:

<?xml version="1.0"?>
<root>
  <element>New Value</element>
</root>

深掘り:

XMLは90年代後半からある、読みやすさとマシンフレンドリーを目的として作成されました。シンプルさのためにJSONに一部の人気を奪われたものの、文書の検証と名前空間が重要な場所ではXMLが根強く残っています。

代替案?もちろん—JSONやYAML、あるいはパフォーマンス重視のアプリにはProtocol Buffersのようなバイナリフォーマットなど。しかし、XMLのスキーマとXSLT(XML変換のため)は、堅牢さが重要な複雑なシナリオにおいては魅力的です。

内部では、xmlstarletのようなツールはlibxml2のような強力なライブラリをラップし、XMLを細かくいじるためのXPathやXQueryを提供しています。これらは単なるXMLツールではなく、任意の言語でXMLに触れる際に同様のコンセプトを適用できるDOM操作へのゲートウェイでもあります。

参照: