問題タブ [xmlstarlet]
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 - 条件付きで XmlStarlet を使用するには?
ソース XML
XmlStarletを使用したLinuxシェルスクリプトで、every<element name="bar">true</element>
の値を<element name="foo">
in theの値に更新したいと考えています。<block>
単一のxml ed
コマンドで可能ですか?
期待される結果
xml - XmlStarletを使用して属性を持つ要素をXMLファイルに挿入する方法は?
ソース XML
物体
Linux シェル スクリプトを使用して<el name="c">0</el>
、every に要素を挿入したいと思います。<block>
XmlStarlet を使用して要素を追加できます。
質問
- 属性
<el>
を持たないすべての要素を選択する XPath 式は何ですか?name
- 単一の
xml ed
コマンドで要素を追加して属性を挿入できますか?
xml - 繰り返し XML 要素を使用および処理して、シェル スクリプトで他の要素を作成する方法は?
次の XML ファイルを (POSIX 準拠の) シェル スクリプトで作成したいとします。
しかし、私は次のものしか持っていません:
XMLStarletを使用するedit --update
と (および のみ--update
)、次の形式で文字列値の代わりに XPath 式を使用できます。
しかし、XPath 2.0 文字列関数は機能していないようです ( xmlXPathCompOpEval: function lower-case not found
)。<title>
次に、すべてのブロックを繰り返し処理し、要素のテキスト値を使用して要素を生成するにはどうすればよい<slug>
でしょうか? xml
最小限のアクションでこれを行うにはどうすればよいですか?
xml - ファイルから(多くの)値を取得して、xmlstarletを使用して大きなxmlをフィルタリングする方法はありますか?
みんな。<Interaction>
ファイルから定義した値のリストによって定義されたいくつかのノードのみを保持するために、(BLAST から) 大きな xml ファイルをフィルター処理しようとして<Iteration_iter-num>
います。簡単な例を次に示します (実際の Blast.xml には 80000 回を超える繰り返しがあります)。
そして、保持する反復を含むファイルがあります(keep_iterとして保存されます):
この種の低規模の問題については、xmlstarlet を使用してフィルタリングを実行し、最初に比較用の文字列を格納するファイルのバージョンを作成しました (フィルターとして保存されます)。
これは、以下のチャームとして機能します。
基本的に、フィルタ ファイルに含まれていないすべての反復ノードを削除しました。
問題は、フィルターする 20000 の値を持つ keep_iter ファイルが実際にあることです。フィルタ ファイルを作成して上記の xmlstarlet コマンドを実行すると、明らかに引数が長すぎます。
このような Blast.xml ファイルをフィルタリングして、keep_iter ファイルにリストされている反復番号 (20k の値) の反復ノードのみを保持するための提案はありますか? 元のxml構造を維持したい。
xml - xmlstarlet を使用して、指定された値でサブノードを子に挿入します
xmlstarlet を使用して、特定のノードの下のサブノードに挿入しようとしています。しかし、属性ではなく特定の値を持つノードの下でそれを行うにはどうすればよいでしょうか?
このコマンドを使用しようとしていますが、多くの場所に挿入され、CCDefines の後にのみ実行されます
そして、/project/configuration/settings/data/option/name がある xml のどこにもありません
私のxmlファイルは次のとおりです。
誰かがこれを経験したことを願っています。
xml - xmlstarlet を使用して複数の xml 要素を連結する
このようなxmlファイルから複数の「ディレクター」を抽出し、それらをパイプで区切って連結するbashスクリプト、つまりTom Tykwer | Andy Wachowskiを作成しようとしています。
関連する xml セクションは次のとおりです。
bash スクリプトで xmlstarlet を使用して、次のコマンドを実行します。
ください
そしてこのコマンドを端末で直接
私に与えます:
-n オプションを指定していないのに、なぜ新しい行が追加されるのかわかりません。
私の検索のいくつかは、次のようなものを示唆しています:
しかし、これは私に与えます:
私が得ることができる助けをいただければ幸いです。Debian Wheezy の xmlstarlet 1.3.1 と Xubuntu 13.10 の xmlstarlet 1.5.0 でこの動作が見られます。