問題タブ [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.
xpath - xmlstarletがすべてのノードを選択しないのはなぜですか?
w3schoolsからのこの例を考えてみましょう:
xmlstarlet sel -t -v "// @ category" books.xml
COOKINGのみを返します。カテゴリという名前のすべての属性を取得するにはどうすればよいですか?
ボーナスの質問:エディターやプログラムで開かずにXMLファイルに対してXPathクエリを評価するにはどうすればよいですか(クイックツールが必要です)。問題は、巨大なファイルをメモリにロードするとエディタがクラッシュすることです。eXistが私の最善の策だと言わないでください。
sed - ファイル内の文字列を置き換える Xmlstarlet と sed
膨大な数のhtmlファイルがあります。すべての , と " をそれぞれ html エンティティ &nsbquo と &quto に置き換える必要があります。これには 2 つのステップで成功する必要があります: 1) 間のすべてのテキストを検索します。
タグ。このテキストの間だけを置き換える必要がありますタグ。2) sed を使用して必要なすべての文字列を置き換えます
これに対する私のコマンドは: xmlstarlet sel -t -v "*//p" "index.html" | sed 's/,/\&nsbquo/'
これは機能しますが、変更を index.html ファイルに戻す方法がわかりません。sed には -i オプションがありますが、そのためには sed コマンドでファイル名を指定する必要があります。しかし、私の場合は | を使用する必要があります。html ファイルから必要な文字列を除外します。
助けてください。私は2日間からこれをたくさん検索しましたが、運がありませんでした.
ありがとう、ディビア。
xmlstarlet - XMLStarletで別の要素の直後に要素を挿入するにはどうすればよいですか?
この例のXMLでは:
XMLStarletを使用し<element-c/>
て要素の直後に要素を挿入するにはどうすればよいですか?<element-b/>
xml - xmlstarlet 編集挿入構文
xmlstarlet を使用して新しい要素を挿入しようとしていますが、コマンドを実行すると、挿入しようとしている xml ファイルが一覧表示されます。どんな提案も素晴らしいでしょう。
xml - xmlstarlet 属性を更新する
私はxmlファイルを扱うスクリプトに取り組んでいます。この xml ファイルの属性値を xmlstarlet で更新したいのですが、うまくいきません。
xml ファイルのサンプルを次に示します。
カスタム プロパティ ノードで「XF86Display」という名前のプロパティを更新するコマンドを次に示します。
この出力は入力と厳密に同じです...
ありがとうございました
xml - INIをXMLに変換しますか?または、一般的なレガシーフラットファイルはありますか?XSL?xmlstarletまたはxsltprocから?
INIからXMLへのある種の変換を行うことを検討しています。INI構文は単純です。私はsed/awk / grepを探していません。これは、実際にはXMLツールで実行する必要があります。
これは通常のXSLで実行できますか?Xflatについて聞いたことがありますが、Cでコンパイルされたツールからそれを行うことはできますか?xsltprocやxmlstarletなど。
一般的なINI構文は次のようになります...
これはこのようなxmlになります...
どんな助けでも大歓迎です。
xml - 1 つの値の xml 解析
次のxmlを追加し続けるファイルがあります。変数から取得したいのは、jobStatus の percentComplete です。どうすればそれを手に入れることができますか?xml を解析する方法がわかりません。XMLStarlet を使用しようとしましたが、失敗しました。シェルで使用できる変数で percentComplete を取得したいと考えています。
command-line-interface - XMLStarlet は何も選択しません
典型的な pom.xml があり、groupId、artifactId、およびバージョンをコロンで区切って出力したいと考えています。XMLStarletはそのための適切なツールだと思います。いくつかの方法を試しましたが、常に空の行が表示されます。
期待される出力:
実際の出力: 空行
groupId だけを印刷しようとしても、何も得られません。
問題なくリストできるため、ツールが要素を認識していると確信しています。
以下を(正しく)出力します。
どうしたの?
以下は、pom.xml の簡略版です。
compilation - ローカルで使用するために、古いシステムでパッケージの最新バージョンをコンパイルします
古くて古いシステムで最高の最新のパッケージをコンパイルできるかどうかを知る必要があります。なんで?私は会社に制限があります。古いDebian3.0サーバーでアプリケーションを開発する必要があり、新しいソフトウェアを使用してタスクを実行したいと思います。残念ながら、パッケージをアップグレードしたりインストールしたりすることは許可されていません。
具体的には、xmlstarletを使用してXMLファイルを快適に解析したいと考えています。このサーバーにはインストールされていません。システムでサポートされている古いバージョンのxmlstarletをダウンロードすると、必要な機能が失われるほど古くなります。libc6、libxml2、libxslt1.1の3つの依存関係があります(これらはインストールされていますが、新しいバージョンのxmlstarletには古すぎます)
したがって、問題は次のとおりです。このパッケージとその依存関係(少数で単純だと思います)をダウンロードして、ローカルで(必ずしもシステムのパス上ではなく、作業ディレクトリ内で)動作するようにコンパイルする方法はありますか?とにかく同じ名前のレガシーパッケージ?
このシステムにはPEARも、PHP5も、xmllintもありません。これらのXMLを解析するために、PHP4でコーディングすることは避けたいと思います。私は本当にxmlstarletで働きたいです。
xml - それらの間の値でXMLタグを検索し、シェルスクリプトに新しいタグを挿入する
これらのコンテンツを含むこのtest.xmlファイルがあるとします
以下に示すように、「hello」オブジェクトに新しい <s>2.0</s> を追加したいと思います。
シェルスクリプトを使用してこれを行う必要があります。XML DOM を検索し、ここで指定された xmlstarlet を使用してタグを追加する方法がありますhttp://www.technomancy.org/xml/add-a-subnode-command-line-xmlstarlet/。ただし、これは、属性値に基づいて特定のノードに新しいタグを追加することのみを説明しています。私には何の属性もありません。どうすればできますか?grep を使用してそれを行う方法はありますか?