-
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.