perlでRSSファイルを取得してTITLEタグの内容を抜き出したいのですが、
XML::RSSが使えない状況では、どのようにしたらいいでしょうか?
my $document = LWP::Simple::get($url)後に正規表現で取り出して
print タイトル<br>という風に表示しようと思っています。
よろしくお願いします。
----下記のページを参考にしています。
http://www.itmedia.co.jp/enterprise/articles/070 …
No.2ベストアンサー
- 回答日時:
正規表現で処理する前にutf-8をEUCに変換します。
Perlの正規表現はEUC以外では環境次第ですので動作保障が出来ません。
その後、全テキスト読み込み、「<title>」「<link>」タグの付いた行をそれぞれ配列「@T」「@L」に代入という前提で
for(my $i=0; $i<=$#T; $i++){
$T[$i] =~ s/<title>(.+)<\/title>/$1/;
$L[$i] =~ s/<link>(.+)<\/link>/$1/;
print '<a href="'.$L[$i]."'>".$T[$i]."</a><BR>\n";
}
で抽出が完了すると思います。
タイトルだけならLINKの部分を取ってください。
なるほど処理する文字コードの違いがでてくるわけですね。
正規表現でのマッチ方法も理解できました。
ソースを対応させて動かしてみます。
ありがとうございました。
No.1
- 回答日時:
こんにちは、
あくまでも参考程度ですが。
以下のスクリプトをutf-8Nで保存して
ActivePerlで実行したら、
naoyaのはてなダイアリー
会社にお泊まり
と表示されます。
#! /usr/bin/perl
use strict;
use warnings;
use utf8;
#>----下記のページを参考にしています。
#リンク先のxmlサンプルをコピペしました。
my $document = << "END_OF_DOCUMENT";
<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF
xmlns="http://purl.org/rss/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xml:lang="ja">
<channel rdf:about="http://d.hatena.ne.jp/naoya/rss">
<title>naoyaのはてなダイアリー</title>
<link>http://d.hatena.ne.jp/naoya/</link>
<description>naoyaのはてなダイアリー</description>
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://d.hatena.ne.jp/naoya/20050330/1112136510"/>
:
:
</rdf:Seq>
</items>
</channel>
<item rdf:about="http://d.hatena.ne.jp/naoya/20050330/1112136510">
<title>会社にお泊まり</title>
<link>http://d.hatena.ne.jp/naoya/20050330/1112136510< …
<description>夜遅かったので会社に泊まることにしました。</description>
<dc:date>2005-03-30T07:48:30+09:00</dc:date>
</item>
END_OF_DOCUMENT
my @titles = $document =~ /<title>([^<]*)<\/title>/ig;
binmode STDOUT, ":encoding(shiftjis)";
print "$_\n" for @titles;
exit;
>print タイトル<br>
この様子だとCGIだと思いますが、文字コードには
気をつけないといけませんね。
正規表現はあまり得意じゃないので、自信がありません。
あくまで参考程度に。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlをバージョンアップしたら...
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlの構文でカンマの意味が分...
-
英数文字列のうちの数値を4桁に...
-
テキストファイルで提出とは?
-
Perlのエラーについてご教授く...
-
AI sisterとは、偽物の人ですか?
-
perlのrequireの動き方について...
-
perlのプログラミング 部分入れ...
-
Strawberry Perl for Windows ...
-
arduino の割り込み処理について
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
bashスクリプト
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perl 強制終了の回避について
-
Win32でInputBoxを実装するには?
-
VHDLについてですが何がお...
-
Perl/TkでURLを既定のブラウザ...
-
LWPでHTMLが取得できないことが...
-
Perl LWPでのIPv6エラー
-
LWP::Simpleでのgetについて
-
mechanizeのタイムアウト処理に...
-
TwitterAPI1.1でGetメソッド(...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBA 定義されたプロージ...
-
例外処理のフローチャートの記...
-
ArduinoのジャイロモジュールMP...
-
ユーザー定義関数に#NAME?が返...
-
「デバイスは PRN を初期化でき...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 『Call』で呼び出す...
-
エクセルVBAでシートモジュール...
-
LCD ディスプレイを Raspberry ...
-
モジュールとは何ですか
おすすめ情報