問題タブ [xmllint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xml - xmllint が xpath で正しく動作しない
これが私が持っているものです。明らかに本来の機能を果たさず、クラッシュさえしました。何か問題がありますか、または BASH で XML を解析するのに役立つ他のツールはありますか?
xml - XML からノード値を抽出するためのネイティブ シェル コマンド セット
pom.xml からノードの値を抽出しようとしています:
シェル コマンドを使用して、XML から artifactId とバージョンを抽出する必要があります。次の要件/観察事項があります。
- シェル スクリプトは、作業で使用するビルド アセンブリ ファイル内で実行されるため、スクリプトは小さいほど優れています。
- 複数のシステム (通常は RHEL5) で使用されるため、デフォルトのイメージでネイティブに実行できるものを探しています。
- のようなタグは、pom の他の場所で発生する可能性があるため、これらのタグを単純に awk することはできません。
私は次のことを試しました:
xpath
私の Mac では動作しますが、RHEL マシンではデフォルトで使用できません。同様にxmllint --xpath
、これは の新しいバージョンでのみ利用できると思いますがxmllint
、これは私が持っておらず、強制することもできません。xmllint --pattern
有望に思えましたが、xmllint --pattern '//project/parent/version' pom.xml
(XML全体を出力する)またはxmllint --stream --pattern '//project/parent/version' pom.xml
(出力なし)から出力を取得できないようです。
これはSOに関するよくある質問だと思いますが、上記の点が、これらの回答を使用できない理由です。あなたの助けのためのTIA。
text - xpath 式の解析後に xmllint コンテンツが切り捨てられる
次の xmllint コマンドを実行していますが、コンテンツが切り捨てられます。
echo xpath '//create_context[@date="2013-01-31"]/instrument/file/text()' | xmllint --shell file.xml
/ > オブジェクトはノード セットです: セットには 3 つのノードが含まれます:
1 テキスト
2 テキスト
3 テキスト
私の xmllint は --xpath をパラメーターとして取りません
ご協力いただきありがとうございます。誰かがすでに回答を提供している場合は申し訳ありません。
bash - xmllint と xpath を使用して複数行を出力する方法
XMLを解析するための簡単なbashスクリプトを書いています。私はsedとawkを使用していましたが、xmllintの方が適していると思います。
残念ながら、私は xpath にまったく慣れていないので、本当に戦っています。
次のxmlを取得しようとしています:
.....
それを処理して変数として '3' を xpath スクリプトに渡し、次のように出力します。
つまり、各ノードのコンテンツの複雑な組み合わせで、バージョンの値がたとえば 3 より大きい場合です。
xml - xml: 子要素をインデントするが、新しい行に属性を保持する方法
私は以下のようなxmlを持っています。
残りの xml ファイルはそのままにして、子要素をインデントする必要があります (つまり、dtd セクションとエンティティは削除せず、属性は新しい行に配置する必要があります)。xml は最終的に次のようになります。
と を使ってみxmllint
ましtidy
た。xmllint
子要素をインデントしていますが、属性を新しい行に保持していません。tidy
一方、属性を新しい行に保持するオプションがありますが、子要素をインデントすることはできません。perl正規表現も使用してみました。これはおそらく XSLT で行うことができますが、私はそれに精通していません。