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