web-dev-qa-db-ja.com

XMLのGrepツール

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

Grep自体はそれを処理できません-DFAと同等のツールは非再帰的な一致のみを処理でき、私のものは再帰的である可能性があります。

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

何かお勧めですか?

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

22
Adam Matan

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

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

XMLStarletは一連のコマンドラインユーティリティ(ツール)であり、UNIXのgrep、sed、 awk、diff、patch、joinなどのコマンド。

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

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

素敵な紹介については、IBMの XMLStarletで作業を開始する を参照してください。

21

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

xml_grepstand-aloneツールとして 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について私が見つけた最良の導入は、xml_grepクックブック です。 、約2ページ。その他:

5
Peter Mortensen

さまざまな言語の XPath 構文は、xmlで物事を見つけるのに最適です。実際、xgrepのメーカーが推奨する ツールの1つ は、基本的にXPath入力を受け入れるPerl XMLパーサーです。

5
jweede

XMLではgrepのようなツールを使用しないことをお勧めしますが、代わりにライブラリを使用してXMLを解析します。
正確に何が必要ですか?プログラミング言語は? .NETビルトインXMLパーサーは、プログラムを作成するつもりなら、簡単に仕事に合うと思います。

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

0
fretje

XMLSpy は、少々費用がかかる場合、素晴らしいツールです。

0
JP Alioto