むつの日記

f02154d4 :むつ 2006-05-21 20:09
XML をコマンドライン上で適当にパースっぽいことをしてくれるもの無いかなーと探して xpath(perl スクリプト)にたどり着きました。
でもなんだか出力が変です。パイプやリダイレクトして使いたいので STDERR への出力も邪魔です。

xpath test.xml "/record/body" ・・・正常
xpath test.xml "/record/body" 2>/dev/null ・・・見えない
xpath test.xml "/record/body" >test_body.txt; lv test_body.txt ・・・正常
xpath test.xml "/record/body" >test_body.txt; cat test_body.txt ・・・見えない

どうも行末に何か足りてないようです。結局以下のようにして回避。
echo `xpath test.xml "/record/body" 2>/dev/null`

xpath ではタグそのものは除去してくれません。まーこれは perl でてきとーに処理できますのでチョイチョイと。

#!/usr/bin/perl

while(<STDIN>){
$_ =~ s|<br />|\n|g;
$_ =~ s|<[^>]+>||g;
print $_
}

みたいな。

何がしたかったかというと、新月(朔)のレコードを XML 化して保存、必要に応じて xpath でとか。
まったくもって無意味なのは考えるまでもありません。
(レコード形式のままで何ら不都合が無いから)。
Powered by shinGETsu.