3

Linuxシェルからxqueryを実行するための簡単なcliコマンドを見つけようとしています。私が欲しいのは、(fedora 18を使用して)インストールする必要のある外部依存関係を回避することです。

私がすでに見つけたのは、yumを介してインストールできるsaxonとxqillaです。私はそれらを他に何もなければ使用することができますが、それらは基本システムにありません。私が見つけたかったのは、xslt処理を行うためのJava内部クラス(com.sun.org.apache.xalan.internal.xsltc.cmdline.Transform)のようなものです。

私が持っているもう1つのアイデアは、XSLTを使用してドキュメントを目的のxquery結果に変換することですが、ワンライナーは不可能です。

xqillaでできることの例(ただし、別のユーティリティを検索しています):

$ xqilla -i TEST-com.ecample.testcase.MyTestCase.xml <(echo '/testsuite/@failures + /testsuite/@errors')

更新:私が持っていた質問とは異なりますが、perl XML :: Twigがデフォルトでインストールされ、perlで複雑なロジックを実装する柔軟性を与えてくれました。また、XMLファイルごとにプロセスをフォークする必要がないため、速度が大幅に向上しました。

4

4 に答える 4

3

XQuery 1には、私のXidelがあります。このように動作します:

 $ xidel TEST-com.ecample.testcase.MyTestCase.xml -e 'xquery version "1.0"; /testsuite/@failures + /testsuite/@errors'

完全に依存関係はありませんが、基本システムではなく、Javaではなく、XMLスキーマをサポートしていません...

于 2012-12-17T17:21:27.137 に答える
3

編集:あなたがすでにサクソン人を見つけたとあなたが言ったことに気づきました。例が将来誰かを助ける場合に備えて、とにかく私の答えを残しておきます。


コマンドラインからSaxon(XQuery)を実行できます。これを行うには、を使用してXPath / XQueryを含むファイルをポイントする-qか、を使用してクエリ文字列を直接渡すことができます-qs

-qs単純なXPathを処理するために使用する例を次に示します。

input.xml

<a>
  <b id="x"/>
  <b id="z"/>
  <b id="x"/>
</a>

Saxonコマンドライン(テストにはSaxon9-HEを使用しました)

java -cp "saxon9he.jar" net.sf.saxon.Query -s:"input.xml" -qs:"/a/b[@id='x']" -o:"results.xml"

results.xml

<b id="x"/><b id="x"/>

-qs注:を次のように変更することで、出力を整形式にすることができます。

-qs:"<results>{/a/b[@id='x']}</results>"

その他のコマンドラインオプションについては、こちらをご覧ください:http: //www.saxonica.com/html/documentation/using-xquery/commandline.html

于 2012-12-19T17:35:57.593 に答える
1

残念ながら(またはXMLに感謝しない場合は、幸いなことに)、UnixおよびLinuxシステムで非常に散発的である場合はXMLがサポートされます。

評判の高いXMLStarletシステムをインストールできます

それ以外の場合は、常にxmllintを検索するのに役立ちます。ただし、OSベースのバージョンが異なれば、機能セットも異なるように見えることに注意してください。その一部は、XMLのリンティングをはるかに超えています。ただし、基本的なPATHに表示されるように常にインストールされているわけではないため、

 find / -name 'xmllint*' -ls 2>/dev/null  > xmllintList.txt &

1時間以上検索した後、自分が持っていることを知らなかったxmlツールのディレクトリ全体が見つかる可能性があります。

IHTH。

于 2012-12-19T17:12:43.880 に答える
1

JDKにはXQueryプロセッサがバンドルされていないため、別途インストールする必要があります。なぜそれを問題と見なすのかは明らかではありません。

于 2012-12-17T18:22:32.013 に答える