XML解析
以下のXMLファイルから
http://live-e.naist.jp/data/getLatestDataAll/
の中から、全ての
属性値:latitude、 longitudeを取得するプログラムを作成したいのですが、perl初心者で困っています。
どなたかプログラムを作成していただけないでしょうか。
実行環境の指定が無いため汎用性の高いコマンドライン上で動くものを作成してみました。結果はcsv形式で標準出力にでてきます
動作確認はwindows上でのみ行っています。windows上で動かしたため文字コードはsjisを利用しています
Linuxなどで動かす場合は一行目のperlパスを適正なものに調整して、文字コードも必要に応じて調整してください
WEB出力が最終目的かもしれませんが、解析とは別問題となりますので別質問にしてくださいませ
(カンマで繋ぐのではなくHTMLタグを一緒に出力するようにして、httpヘッダを加えるだけですけどね。
一度に両方に対応するのは大変なので、今回はコマンドライン出力のみとしています。
質問の際には動作環境や最終出力形態も指定されると、双方ともに楽になりますので、以後よろしくです)
hoge.pl
#!/usr/bin/perl use strict; use warnings; use LWP::Simple; use Encode; use XML::Simple; my $readXML = XML::Simple -> new -> XMLin( get( 'http://live-e.naist.jp/data/getLatestDataAll/' ) ); my @data; foreach my $key ( keys %{ $readXML->{ 'sensorGroup' } } ) { if ($key ne '') { print '"', encode( 'sjis', $key ), '"'; print ',', $$readXML{ 'sensorGroup' }{ $key }{ 'latitude' }; print ',', $$readXML{ 'sensorGroup' }{ $key }{ 'longitude' }; print "\n"; } }
実行方法は下記のような具合
perl hoge.pl > hoge.csv
xml解析初心者の方に向けた。おまけです
上記のようなコードを書くためにはxmlの構造を調べなければならないので今回は下記のようなコードで事前調査しています
このように事前調査することでxmlの利用はかなり簡単になります。初心者で学習中の方はぜひご活用ください
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use LWP::Simple; use XML::Simple; my $readXML = XML::Simple -> new -> XMLin( get( 'http://live-e.naist.jp/data/getLatestDataAll/' ) ); print Dumper($readXML);
実行環境の指定が無いため汎用性の高いコマンドライン上で動くものを作成してみました。結果はcsv形式で標準出力にでてきます
動作確認はwindows上でのみ行っています。windows上で動かしたため文字コードはsjisを利用しています
Linuxなどで動かす場合は一行目のperlパスを適正なものに調整して、文字コードも必要に応じて調整してください
WEB出力が最終目的かもしれませんが、解析とは別問題となりますので別質問にしてくださいませ
(カンマで繋ぐのではなくHTMLタグを一緒に出力するようにして、httpヘッダを加えるだけですけどね。
一度に両方に対応するのは大変なので、今回はコマンドライン出力のみとしています。
質問の際には動作環境や最終出力形態も指定されると、双方ともに楽になりますので、以後よろしくです)
hoge.pl
#!/usr/bin/perl use strict; use warnings; use LWP::Simple; use Encode; use XML::Simple; my $readXML = XML::Simple -> new -> XMLin( get( 'http://live-e.naist.jp/data/getLatestDataAll/' ) ); my @data; foreach my $key ( keys %{ $readXML->{ 'sensorGroup' } } ) { if ($key ne '') { print '"', encode( 'sjis', $key ), '"'; print ',', $$readXML{ 'sensorGroup' }{ $key }{ 'latitude' }; print ',', $$readXML{ 'sensorGroup' }{ $key }{ 'longitude' }; print "\n"; } }
実行方法は下記のような具合
perl hoge.pl > hoge.csv
xml解析初心者の方に向けた。おまけです
上記のようなコードを書くためにはxmlの構造を調べなければならないので今回は下記のようなコードで事前調査しています
このように事前調査することでxmlの利用はかなり簡単になります。初心者で学習中の方はぜひご活用ください
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use LWP::Simple; use XML::Simple; my $readXML = XML::Simple -> new -> XMLin( get( 'http://live-e.naist.jp/data/getLatestDataAll/' ) ); print Dumper($readXML);
ありがとうございました!
よくわかりました。
勉強を続けれそうです。
また、つまづいたときは、
よろしくお願い致します。
ありがとうございました。
xmlの解析モジュールにはいろいろあるんですね。
勉強になります。
ありがとうございました!
よくわかりました。
勉強を続けれそうです。
また、つまづいたときは、
よろしくお願い致します。