23

私はこの構文をいくつかの場所で見ました(例えば、ここ):

xmllint --xpath '/plist/array/string/text()' tmp.xml、xpathセレクターを使用して特定のXMLノードを照会するために使用されます。ただし、Unknown option --xpathこれを自分のマシン(mac os x snow leopard)で実行しようとすると、エラーが発生します。

xmllintのマニュアルページを詳しく見てみると、--xpathドキュメントに記載されているオプションが見つかりません...

私はここで何かを完全に見逃していますか?

4

4 に答える 4

8
xmllint --shell tmp.xml <<<'xpath /plist/array/string/text()'

stdin を読み取るために xmllint を作成する必要がある場合:

cat /tmp/tmp.xml | xmllint --shell <(cat) <<<'xpath /plist/array/string/text()'
于 2016-07-05T09:06:15.450 に答える
6

一部の人々にとって、更新はオプションではありません。他のチームによってインストールされた特定のバージョンで作業する必要があり、それを使用します。

--shell で試すことができます:

xmllint --shell tmp.xml << EOF
'/plist/array/string/text()'
EOF
于 2015-05-04T14:30:45.123 に答える
5

ああ、うん、古いバージョンの問題だったに違いないlibxml2.

macports 経由でlibxml2(に)更新すると、問題が解決したようです。v2.7.8

于 2012-08-15T19:41:41.437 に答える
1

plistMacのコマンドラインからファイルを操作する場合は、を使用しますPlistBuddy

たとえば、シェルスクリプトでこの種のことを行うことができます。

BUNDLE_ID=`/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' Info.plist`
echo $BUNDLE_ID

これは非常に強力で、配列や辞書の項目を追加/削除したり、キーまたはインデックス付きの値を検索したり、他のファイルをコピー/マージ/インポートしたりできます。詳細については、を参照/usr/libexec/PlistBuddy -hしてください。

于 2013-01-09T12:03:29.563 に答える