XML用のGrepツール[終了]


22

XMLでgrepのような操作を実行するための優れたツールを探しています。たとえば、特定の属性のみを抽出します。

Grep それ自体はそれを処理できません-DFAと同等のツールは非再帰的なマッチのみを処理でき、私のものは再帰的かもしれません。

xgrepを試しましたが、非常に不安定であり、安定した信頼できるツールが必要です。

推奨事項はありますか?

編集:Linuxでうまく機能するオープンソースツールを好みます。

回答:


21

XMLStarlet(Wikipedia)は、に近いコマンドラインツールですgrep。オープンソースソフトウェア(MITライセンス)であり、LinuxおよびWindowsで正常に動作します。

XMLStarlet Webサイトでは、次のように説明しています。

XMLStarletは、UNIX grep、sedを使用したプレーンテキストファイルの場合と同様に、シェルコマンドの単純なセットを使用して、XMLドキュメントとファイルの変換、クエリ、検証、編集に使用できるコマンドラインユーティリティ(ツール)のセットです。 awk、diff、patch、joinなどのコマンド。

Debian / Ubuntuパッケージの名前はxmlstarletです。 しかし注意してください:マンページが言うこととは反対に、バイナリはxmlstarletDebian / Ubuntuではなく、xml

SourceForgeにはWindowsバイナリもあります。

ちょっとした紹介については、IBMのXMLStarletの使用開始を参照してください。


最初のリンクから末尾のスラッシュを削除します。
Bkkbrad 09

私はそれを動作させることができません... '/'(ドキュメント全体)を除くどのxpathにも一致しません。これは非常に価値がありません:(
Hendy Irawan

@HendyIrawan-それはあなたがxpathを使用しようとしている方法ではないと確信していますか?(XMLには、考慮していないデフォルトのネームスペースがありますか?)
ダニエルヘイリー

クローンを作成しようとしましたが、リポジトリが壊れているようです。
はいはい醤油エドゥフェリスナヴィダード


5

Linuxで動作するツールはxml_grepです。XMLを完全に理解しており、行ごとのツールではありません。

xml_grepは、XML :: Twigパッケージにスタンドアロンツールとして含まれています。grepping機能は、XPath仕様をサポートしているため非常に強力です。

サンプルのコマンドライン(2月中旬以降に編集された投稿をtriology Data Dumpから抽出):

xml_grep -p --cond="row[@LastEditDate>'2010-02-14']"  posts.xml  > lateEditedPosts.xml

インストールは簡単です。どちらか

  • sudo cpan -i "XML::Twig"、下記のxml_grepクックブックで説明されているとおり。

または


詳しくは:

私がxml_grepで見つけた最良の紹介は、約2ページのxml_grep cookbookです。その他:


壊れたリンクを修正しましたが、三部作のData Dumpリンクも壊れています。私は何ができるかを見るでしょう。
ピーターモーテンセン


0

XMLでgrepのようなツールを使用するのではなく、代わりにライブラリを使用してXMLを解析することをお勧めします。
正確に何が必要ですか?プログラミング言語はありますか?.NET組み込みXMLパーサーは、そのためのプログラムを作成したい場合でも簡単にジョブに適合すると思います。

更新:Linuxの場合、よく知られているXMLパーサーライブラリはlibxml2です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.