English Japanese Kawa.netxp [Perl] XML::FeedPP - RSS�ERDF�EAtom�t�B�[�h�̉�́E�����E�ϊ��E����

XML::FeedPP ���W���[���́A RSS 2.0�ARSS 1.0 (RDF)�AAtom 0.3�i�����1.0�j�t�B�[�h�� XML �t�@�C������́E�����E�ϊ��E�������邽�߂� Perl ���W���[���ł��B
RSS �x�[�X��1��ނ̋��� API �� RSS�ERDF�EAtom �̊e�t�H�[�}�b�g�̏����ɑΉ����Ă��邽�߁A ��y�Ɉ����܂��B
�t�B�[�h�̓ǂݏo���E�������݂͂������A RSS����RDF�ցARDF����Atom�ւƂ������e�t�H�[�}�b�g�Ԃ̑��ݕϊ����”\�ł��B
���T�C�g����_�E�����[�h���������̃t�@�C�����������āA �܂Ƃ߂�1�‚̃t�@�C���Ƃ��ďo�͂��邱�Ƃ��ł��܂��B

���J�ŃA�[�J�C�u�F XML-FeedPP-0.43.tar.gz TARGZ CPAN  ���ʏ�p�b�P�[�W

�ŐV�Ń\�[�X�t�@�C���F lib/XML/FeedPP.pm PM

Subversion ���|�W�g���F http://xml-treepp.googlecode.com/svn/trunk/XML-FeedPP/ SVN

�� XML::FeedPP �o�[�W���� 0.30 ����AAtom 1.0 �ɑΉ����܂����B�i�f�t�H���g�� Atom 0.3 �ł��j

�T���v���v���O����

Web�T�[�o���RSS�t�@�C������M���āA���e��\�������F

    my $source = 'http://use.perl.org/index.rss';
    my $feed = XML::FeedPP->new( $source );
    print "Title: ", $feed->title(), "\n";
    print "Date: ", $feed->pubDate(), "\n";
    foreach my $item ( $feed->get_item() ) {
        print "URL: ", $item->link(), "\n";
        print "Title: ", $item->title(), "\n";
    }

RDF�t�@�C���𐶐����āA���[�J���}�V�����ɕۑ������F

    my $feed = XML::FeedPP::RDF->new();
    $feed->title( "use Perl" );
    $feed->link( "http://use.perl.org/" );
    $feed->pubDate( "Thu, 23 Feb 2006 14:43:43 +0900" );
    my $item = $feed->add_item( "http://search.cpan.org/~kawasaki/XML-TreePP-0.02" );
    $item->title( "Pure Perl implementation for parsing/writing xml file" );
    $item->pubDate( "2006-02-23T14:43:43+09:00" );
    $feed->to_file( "index.rdf" );

RSS�t�@�C���ERDF�t�@�C���̓��e���������āAAtom 1.0 �𐶐������F

    my $feed = XML::FeedPP::Atom::Atom10->new();        # ��� Atom 1.0 �t�B�[�h�𐶐�
    $feed->merge( "rss.xml" );                          # ���[�J����RSS�t�@�C��������
    $feed->merge( "http://www.kawa.net/index.rdf" );    # Web���RDF�t�@�C��������
    my $now = time();
    $feed->pubDate( $now );                             # �X�V������ݒ�
    my $atom = $feed->to_string();                      # Atom ��XML�\�[�X�𐶐�

�C���X�g�[���菇

XML::FeedPP ���W���[���̗��p�ɂ� XML::TreePP���W���[���݂̂��K�v�ŁA ����ȊO�̊O�����W���[���ɂ͈ˑ����܂���B

CPAN �o�R�ŃC���X�g�[���ł�����́A CPAN �������p���������B
CPAN �ɓ͂��Ă��Ȃ��ŐV�ł𗘗p�������ꍇ�́A �ʏ�ʂ聫�̎菇�ŃC���X�g�[���ł��܂��B

$ tar zxvf XML-FeedPP-0.03.tar.gz
$ cd XML-FeedPP-0.03
$ perl Makefile.PL
Writing Makefile for XML-FeedPP
$ make
cp lib/XML/FeedPP.pm blib/lib/XML/FeedPP.pm
Manifying blib/man3/XML::FeedPP.3
$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/atom........ok
t/datetime....ok
t/encoding....ok
        1/4 skipped: Encode.pm is required: ISO-8859-1
t/new.........ok
t/rdf.........ok
t/round.......ok
t/rss.........ok
All tests successful, 1 subtest skipped.
Files=7, Tests=170,  1 wallclock secs ( 0.65 cusr +  0.14 csys =  0.79 CPU)
$ sudo make install

XML::FeedPP �� Perl 5.005�^5.6.x�^5.8.x �̂�����̊‹��ł����p�ł��܂��B Perl 5.6.x �ȉ��������p�̏ꍇ�́A �uEncode.pm is required�v�Ƃ��ăe�X�g�̂���1�����X�L�b�v����܂����A ����ɂ͉e������܂���B �i���̏ꍇ�̐����́Aencoding="ISO-8859-1" �t�@�C���̏����o�����ł��Ȃ��̂݁B encoding="ISO-8859-1" �t�@�C���̓ǂݍ��݂͉”\�ł��j

XML::FeedPP�^XML::TreePP �ǂ�����R���p�C���s�v�� Pure Perl �����ł�����A �v���o�C�_�̃����^���T�[�o�‹��ł� .pm �t�@�C���P�̂̃R�s�[�݂̂ŗ��p�ł��܂��B�i���̎菇�j

.pm �\�[�X�t�@�C���P�̂ŗ��p����ꍇ

�v���o�C�_�̃����^���T�[�o�ȂǂŁA�T�[�o�̊Ǘ��Ҍ����͂Ȃ����� �I���W�i�� CGI ��ݒu�ł���‹��Ȃǂł́A XML/FeedPP.pm �t�@�C�� �݂̂��T�[�o�ɃR�s�[���邾���ł����p�ł��܂��B

hogehoge.cgi
XML/FeedPP.pm
XML/TreePP.pm

CGI �t�@�C���Ɠ����K�w�� XML �f�B���N�g�����쐬���āA ���̒��� FeedPP.pm �� TreePP.pm ���A�b�v���[�h���Ă��������B
�ʏ�A.pm �t�@�C���̃p�[�~�V�����̓f�t�H���g(644)�̂܂܂�OK�ł��B
XML �f�B���N�g���̃p�[�~�V�����̓f�t�H���g(755)�̂܂܂ł��\���܂��񂵁A ����������(711)�Ƃ��Ă�OK�ł��B

�d�l

POD �̉p��͓K���Ȃ̂ŁA������̕���������₷���ł��Bw

�R���X�g���N�^���\�b�h

�ȉ��̂悤�Ȏ菇�ŁAXML::FeedPP �̃C���X�^���X���쐬�ł��܂��B

  $feed = XML::FeedPP->new( 'index.rss' );

�T�[�o���ɂ��� XML �t�@�C������͂��܂��B
RSS�^RDF�^Atom �t�B�[�h�̌`���͎����I�ɔ��肳��܂��B

  $feed = XML::FeedPP->new( 'http://use.perl.org/index.rss' );

WEB �T�[�o��� XML �t�@�C�����_�E�����[�h�`��͂��܂��B
RSS�^RDF�^Atom �t�B�[�h�̌`���͎����I�ɔ��肳��܂��B

  $feed = XML::FeedPP->new( '<?xml?><rss version="2.0"><channel>....' );

XML �\�[�X����C���X�^���X���쐬���܂��B
RSS�^RDF�^Atom �t�B�[�h�̌`���͎����I�ɔ��肳��܂��B

  $feed = XML::FeedPP::RSS->new();

��� RSS 2.0 �C���X�^���X���쐬���܂��B

  $feed = XML::FeedPP::RDF->new();

��� RDF 1.0 �C���X�^���X���쐬���܂��B

  $feed = XML::FeedPP::Atom::Atom10->new();

��� Atom 1.0 �t�B�[�h�C���X�^���X���쐬���܂��B

  $feed = XML::FeedPP::RSS->new( link => $link, title => $title, ... );
  $feed = XML::FeedPP::RDF->new( link => $link, description => $desc, ... );
  $feed = XML::FeedPP::Atom->new( link => $link, pubDate => $pubDate, ... );

�t�B�[�h�C���X�^���X���쐬���A������ �`�����l���v�f����n�̃��\�b�h ���Ăяo���āA�t�B�[�h�����������܂��B
�R���X�g���N�^�̈����ɃL�[/�l�̃y�A����ׂ܂��B�i�n�b�V����W�J������ԁj

�����E�o�́E�A�C�e���lj��̃��\�b�h

�C���X�^���X����ȉ��̃��\�b�h�����p�ł��܂��B

  $feed->load( $source );

���݂̃C���X�^���X���̏���j�����āA�w�肵���t�B�[�h��ǂݍ��݂܂��B
load() �͎g�킸�ɁA�f���� new() ���\�b�h���g���Ă��������B

  $feed->merge( $source );

���݂̃t�B�[�h $feed �̃`�����l���E�A�C�e�����ɉ����āA �w�肵���t�B�[�h�̓��e���������܂��B
��1�����́Anew() �Ɠ��l�ɓǂݍ��݌��t�B�[�h���w�肵�܂��B
�T�C�g����������ȂǁA���Ƃ��Ɠo�^�ς݂̍��ڂ�����΁A����͏㏑�����܂���B
���L�����������ڂ́A�V�����t�B�[�h�̓��e�œo�^���܂��B
�A�C�e���ɂ‚��Ă��A���o�^�̐V�����A�C�e��������΁A�lj����܂��B
�iguid �łȂ��jURL �x�[�X�Ń}�b�`���O���s���A ���ɑ��݂���A�C�e���ɂ‚��ẮA�㏑�����܂��B

  $feed->to_string( "UTF-8" );

RSS�`���܂���RDF�`���܂���Atom�`���� XML �\�[�X�R�[�h�𐶐����܂��B�i�������Ԃ��j
��1������ "Shift_JIS" �Ȃǂ̕����R�[�h���w��ł��܂����A"UTF-8" ������ł��傤�B

  $feed->to_file( "feed.xml", "UTF-8" );

RSS�`���܂���RDF�`���܂���Atom�`���� XML �t�@�C���𐶐����܂��B
��2������ "Shift_JIS" �Ȃǂ̕����R�[�h���w��ł��܂����A"UTF-8" ������ł��傤�B

  $item = $feed->add_item( $url );
  $item = $feed->add_item( $srcitem );

�t�B�[�h�ɐV�����A�C�e����lj����āA�A�C�e���v�f�̃C���X�^���X��Ԃ��܂��B
RSS�^RDF �ł� <item> �v�f�AAtom �t�B�[�h�ł� <entry> �v�f���lj�����܂��B
��1�����ɂ́A�A�C�e���� URL ���w�肵�܂��B�i��1�`���j
�܂��́A�ʂ̃t�B�[�h���� get_item() ���\�b�h���Ŏ擾�����A�C�e�����w��ł��܂��B�i��2�`���j
URL���܂ރA�C�e���̊e��񂪃R�s�[����܂��B

  $item = $feed->add_item( link => $link, title => $title, ... );

�t�B�[�h�ɐV�����A�C�e����lj����āA������ �A�C�e���v�f����n�̃��\�b�h ���Ăяo���āA�A�C�e�������������܂��B�i��3�`���j
���\�b�h�̈����ɃL�[/�l�̃y�A����ׂ܂��B�i�n�b�V����W�J������ԁj

  $item = $feed->get_item( $num );          # $num+1 �Ԗڂ̃A�C�e���v�f�����o��
  @list = $feed->get_item();                # �S�ẴA�C�e���v�f�����o��

�A�C�e���v�f�����o���܂��B
��1�������w�肵���ꍇ�́A�w�肵���ԍ��̃A�C�e���v�f�����o���܂��B(�ŏ��̗v�f�ԍ���0)
�o�[�W���� 0.19 �ȍ~�ł́A���̐����w�肵�Ė������琔�����v�f�ԍ����w��ł��܂��B�i�����̗v�f�ԍ���-1�j
��1�������w�肵�Ȃ��ꍇ�́A�S�ẴA�C�e����z��ŕԂ��܂��B
���ʂ̔z��Ȃ̂ŁA���[�v�ʼn񂵂ď���������ł��܂��B

  @items = $feed->match_item( link => qr(http://�`), title => qr(Hello�`), ... );

�S�ẴA�C�e���v�f�𐳋K�\���Ō������A�}�b�`�����A�C�e���v�f�݂̂����o���܂��B
�X�J���[�R���e�L�X�g�ŌĂяo�����ꍇ�́A�ŏ��Ƀ}�b�`�����A�C�e���v�f�݂̂�Ԃ��܂��B
�z��R���e�L�X�g�ŌĂяo�����ꍇ�́A�}�b�`�����S�ẴA�C�e���v�f��Ԃ��܂��B
�����̃��\�b�h�̓o�[�W����0.21�ȍ~�őΉ����Ă��܂��B

  $item = $feed->remove_item( $num );       # $num+1 �Ԗڂ̃A�C�e���v�f���폜����
  $item = $feed->remove_item( $url );       # �w�肵��URL�̃A�C�e���v�f���폜����

�A�C�e���v�f���폜���܂��B
��1�����ŁAget_item() ���\�b�h���Ɠ����A�C�e���ԍ�(�ŏ��̗v�f�ԍ���0)���A �܂��̓A�C�e����URL���w�肵�A�폜�����A�C�e���I�u�W�F�N�g��Ԃ��܂��B
�o�[�W���� 0.19 �ȍ~�ł́A���̐����w�肵�Ė������琔�����v�f�ԍ����w��ł��܂��B�i�����̗v�f�ԍ���-1�j

  $item = $feed->clear_item();

�S�ẴA�C�e���v�f���ꊇ�폜���܂��B
�i�o�[�W���� 0.12 �Œlj����܂����j

  $feed->xmlns( 'xmlns:media' => 'http://search.yahoo.com/mrss' );  # ��������
  $url = $feed->xmlns( 'xmlns:itunes' );        # �ǂݏo��
  @list = $feed->xmlns();                       # �ꗗ

���[�g�v�f�Œ�`����l�[���X�y�[�X�ixmlns�j��lj��܂��͎擾���܂��B
��1�E��2�������w�肵���ꍇ�́A�l�[���X�y�[�X�^URL �̑g��o�^���܂��B
��1�����݂̂��w�肵���ꍇ�́A���̃l�[���X�y�[�X�̌��݂̒l�iURL�j��Ԃ��܂��B
���̃l�[���X�y�[�X�����o�^�̏ꍇ�́Aundef ��Ԃ��܂��B
�������w�肵�Ȃ��ꍇ�́A�o�^���̑S�Ẵl�[���X�y�[�X��z��ŕԂ��܂��B

  $feed->sort_item();

�A�C�e�����X�V�����ipubDate�Edc:data�Emodified�Eupdated�j�Ń\�[�g���܂��B

  $feed->uniq_item();

�d�������A�C�e������菜���܂��B�d���� URL �Ŕ��肵�܂��B

  $feed->limit_item( $num );

�t�B�[�h���̃A�C�e�������𐧌����܂��B
�w��l����������΁A����ȍ~�̃A�C�e�����폜���܂��B
���̐����w�肷��ƁA���X�g�̖������琔���āA����ȑO�̃A�C�e�����폜���܂��B

  $feed->normalize();

�t�B�[�h���e�̃m�[�}���C�Y���s���܂��B
��̓I�ɂ́A�X�V�����ipubDate�Edc:data�Emodified�Eupdated�j�t�H�[�}�b�g�̐��K�����s������ŁA sort_item() ���\�b�h�� uniq_item() ���\�b�h�����s���܂��B

�`�����l���v�f����n�̃��\�b�h

�ȉ��̃`�����l���v�f����n�̃��\�b�h�́AXML::FeedPP �C���X�^���X�ɑ΂��Ďg�p���܂��B
RSS�ERDF �ł� <channel> �v�f�AAtom �t�B�[�h�ł� <feed> �v�f�ɑ΂��鑀��ɂȂ�܂��B

�����ɂȂ��v�f�𑀍삷��ꍇ�́A set() get() ���\�b�h�𗘗p���Ă��������B

���\�b�htitle() RSS<title> RDF<title> Atom 0.3<title> Atom 1.0<title>
  $feed->title( $text );

�T�C�g�����w�肵�܂��BHTML �͗��p�����ɁA�e�L�X�g�̂ݗ��p���Ă��������B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B

���\�b�hdescription() RSS<description> RDF<description> Atom 0.3<content> Atom 1.0<content>
  $feed->description( $html );

�T�C�g�̐��������w�肵�܂��BHTML �𗘗p�ł��܂��B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B

���\�b�h pubDate() RSS<pubDate> RDF<dc:date> Atom 0.3<modified> Atom 1.0<updated>
  $feed->pubDate( $date );

�T�C�g�̍X�V�������w�肵�܂��B �w��l�ɂ́A3��ނ̃t�H�[�}�b�g�����p�”\�ł��B
RSS/RDF/Atom �̃l�C�e�B�u�t�H�[�}�b�g�ɉ����āA Perl �� time() �֐��œ�����b�����w��ł��܂��B
�������w�肵�Ȃ��ꍇ�́A�쐬������ W3CDTF �t�H�[�}�b�g�ŕԂ��܂��B

���\�b�hcopyright() RSS<copyright> RDF<dc:rights> Atom 0.3<copyright> Atom 1.0<rights>
  $feed->copyright( $text );

�T�C�g�̐���ҁE�����Җ����w�肵�܂��B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B

���\�b�hlink() RSS<link> RDF<link> Atom<link> Atom<link>
  $feed->link( $url );

�T�C�g�̃g�b�v�y�[�WURL���w�肵�܂��B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B

���\�b�hlanguage() RSS<language> RDF<dc:language> Atom 0.3/1.0<feed xml:lang="">
  $feed->language( $lang );

�T�C�g�̌�����w�肵�܂��B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B

���\�b�himage() RSS<image> RDF<image> Atom 0.3<link> Atom 1.0<link>
  $feed->image( $url, $title, $link, $description, $width, $height )

RSS ���[�_�[���ɕ\������摜���w�肵�܂��B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l�𓯂����̔z��ŕԂ��܂��B
�i�o�[�W���� 0.12 �ł� Atom �ɂ��Ή����܂����Brel="icon"���g�p���܂��j

�A�C�e���v�f����n�̃��\�b�h

�ȉ��̃A�C�e���v�f����n�̃��\�b�h�́Aadd_item() �܂��� get_item() ���\�b�h�� �擾�����C���X�^���X�ɑ΂��Ďg�p�ł��܂��B
RSS�^RDF �ł� <item> �v�f�AAtom �t�B�[�h�ł� <entry> �v�f�ɑ΂��鑀��ɂȂ�܂��B

�����ɂȂ��v�f�𑀍삷��ꍇ�́A set() get() ���\�b�h�𗘗p���Ă��������B

���\�b�htitle() RSS<title> RDF<title> Atom 0.3<title> Atom 1.0<title>
  $item->title( $text );

�A�C�e���̌������w�肵�܂��BHTML �͗��p�����ɁA�e�L�X�g�̂ݗ��p���Ă��������B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B

���\�b�hdescription() RSS<description> RDF<description> Atom 0.3<content> Atom 1.0<content>
  $item->description( $text );

�A�C�e���̐��������w�肵�܂��BHTML �𗘗p�ł��܂��B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B

���\�b�h pubDate() RSS<pubDate> RDF<dc:date> Atom 0.3<modified> Atom 1.0<updated>
  $item->pubDate( $text );

�A�C�e���̍쐬�������w�肵�܂��B �w��l�ɂ́A3��ނ̃t�H�[�}�b�g�����p�”\�ł��B
RSS/RDF/Atom �̃l�C�e�B�u�t�H�[�}�b�g�ɉ����āA Perl �� time() �֐��œ�����b�����w��ł��܂��B
�������w�肵�Ȃ��ꍇ�́A�쐬������ W3CDTF �t�H�[�}�b�g�ŕԂ��܂��B

���\�b�h category() RSS<category> RDF<dc:subject> Atom 0.3�i��Ή��j RDF 1.0<category>
  $item->category( $text );

�A�C�e���̕��ޖ��i�W�������j���w�肵�܂��B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B
������ł́A�����̕��ޖ��͎w��ł��܂���B (�������̕��ޖ��ɑΉ����܂����B2006/04/30)

���\�b�hauthor() RSS<author> RDF<creator> Atom 0.3/1.0<author><name>
  $item->author( $text );

�A�C�e���̒��Җ����w�肵�܂��B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B

���\�b�hguid() RSS<guid> RDF�i��Ή��j Atom 0.3<id> Atom 1.0<id>
  $item->guid( $text );      # ��������
  $text = $item->guid();     # �ǂݏo��

�A�C�e����ID���w�肵�܂��B
�������w�肵�Ȃ��ꍇ�́A�ύX�����Ɍ��݂̒l��Ԃ��܂��B

���\�b�h link() RSS<link> RDF<link> Atom 0.3<link> Atom 1.0<link>
  $url = $item->link();      # �ǂݏo��

�A�C�e����URL��Ԃ��܂��B�i�ǂݏo����p�ł��j

set() get() �ėp���\�b�h

XML::FeedPP �̕W�����\�b�h�ŏ����ł���v�f�́ARSS/RDF/Atom �̎�ȗv�f�Ɍ����܂��B ���̑��A<media:*> �� media ���W���[���Ȃǂ̓���ȗv�f����������ꍇ�ɂ́A set() get() ���\�b�h�𗘗p���Ă��������B

  $item->set( 'module:name' => $value );

<item><module:name> �A�C�e���̎q�v�f�̒l���w�肵�܂��B

  $item->set( 'module:name@attr' => $value );

<item><module:name attr="$value"> �A�C�e���̎q�v�f�̑����l���w�肵�܂��B

  $item->set( '@attr' => $value );

<item attr="$value"> �A�C�e�����̂̑����l���w�肵�܂��B

  $item->set( '@module:attr' => $value );

<item module:attr="$value"> �l�[���X�y�[�X�t�̑����l���w��”\�ł��B

  $item->set( 'hoge/pomu@hare' => $value );

<item><hoge><pomu hare="$value"> �A�C�e���̑��v�f�̑����̒l���w�肵�܂��B

get() ���\�b�h�́Aset() ���\�b�h�̑�P�����Ɠ����`���� �v�f���E���������w�肷��ƁA���̒l��Ԃ��܂��B

������ get() set() ���\�b�h�͔��ɋ��͂ł����A RSS/RDF/Atom �̊e�t�H�[�}�b�g�Ԃł̗v�f���̍��ق������ł͋z�����Ȃ����߁A �o�̓t�H�[�}�b�g�ɍ��킹�Ē��ӂ��Ȃ��痘�p����K�v������܂��B

�܂��A���W���[����lj�����ꍇ�́Axmlns() ���\�b�h�� �t�B�[�h�Ƀl�[���X�y�[�X��o�^���Ă����K�v������܂��B

���t�t�H�[�}�b�g

pubDate() ���\�b�h�̓��͒l�Ƃ��āA ���L�̂R��ނ̓��t�t�H�[�}�b�g�����p�ł��܂��B

    pubDate( "Thu, 23 Feb 2006 14:43:43 +0900" );

HTTP �v���g�R���̓����t�H�[�}�b�g�ł��B RSS 2.0 �̃l�C�e�B�u�`���ɂȂ�܂��B
RSS 2.0 �C���X�^���X�����i�[����AXML�R�[�h�o�͎������̌`���ł��B

    pubDate( "2006-02-23T14:43:43+09:00" );

W3CDTF �̓����t�H�[�}�b�g�ł��B RDF�^Atom �̃l�C�e�B�u�`���ɂȂ�܂��B
�Ȃ��ApubDate() ���\�b�h�̏o�͒l�i�����Ȃ����j�́A �ǂ̃t�H�[�}�b�g�ł���ɂ��� W3CDTF �t�H�[�}�b�g�ƂȂ�܂��B
RSS 2.0 �̏ꍇ���AW3CDTF �t�H�[�}�b�g�ɕϊ����Ă���o�͂���܂��B
�^�C���]�[���������Ă���΁A�\�[�g���₷���̂������ł��B

    pubDate( 1140705823 );          # 2006/02/23 05:43:43 GMT���w�肷��
    pubDate( time );                # ���݂̎������w�肷��iGMT�j

1970�N1��1������̕b���ł��BPerl �� time() �֐��̒l�ł��B
pubDate() ���\�b�h�ւ̓��͒l�Ƃ��ė��p�ł��܂��B
�t�B�[�h���ɋL�q�����^�C���]�[���́AGMT �����ɂȂ�܂��B
�o�[�W����0.08����́A�T�[�o���v�̃^�C���]�[�����K�p�����悤�ɂȂ�܂����B

media ���W���[���̗��p

set() ���\�b�h�͕����̗v�f�E�����𓯎��ɍX�V���邱�Ƃ��ł��܂��B
<media:*> �� media ���W���[���́Aset() ���\�b�h�𗘗p���Ďw�肵�܂��B

    my $item = $feed->add_item( 'http://www.kawa.net/' );
    my $media = {
        'media:title'           =>   'Kawa.net xp',
        'media:text'            =>   'Welcome to Kawa.net xp',
        'media:text@type'       =>   'text',
        'media:thumbnail@url'   =>   'http://www.kawa.net/xp/images/xp-title-256.gif',
        'media:thumbnail@width' =>   256,
        'media:thumbnail@height' =>  48,
        'media:content@url'     =>   'http://www.kawa.net/xp/images/xp-title-512.gif',
        'media:content@type'    =>   'image/gif',
        'media:content@width'   =>   512,
        'media:content@height'  =>   96,
    };
    $item->set( %$media );

�ȉ��̂悤�� XML �R�[�h����������܂��B

    <item>
        <link>http://www.kawa.net/</link>
        <media:title>Kawa.net xp</media:title>
        <media:text type="text">Welcome to Kawa.net xp</media:text>
        <media:content type="image/gif" height="96" width="512"
            url="http://www.kawa.net/xp/images/xp-title-512.gif" />
        <media:thumbnail height="48" width="256"
            url="http://www.kawa.net/xp/images/xp-title-256.gif" />
    </item>

�|�b�h�L���X�g�E�r�f�I�|�b�h

�|�b�h�L���X�e�B���O�E�r�f�I�|�b�g�p�� RSS �t�@�C���� �ȉ��̎菇�ō쐬�ł��܂��B

    my $feed = XML::FeedPP::RSS->new();
    $feed->link( 'http://example.com/' );
    $feed->title( "Yusuke Kawasaki's podcasting!" );
    $feed->xmlns( 'xmlns:itunes' => 'http://www.itunes.com/DTDs/Podcast-1.0.dtd' );
    my $itunes = {
        'itunes:author'     =>  'Yusuke Kawasaki',
        'itunes:image@href' =>  'http://example.com/image.jpg',
        'itunes:category@text'                  =>  '2nd level',
        'itunes:category/itunes:category@text'  =>  '3rd level',
    };
    $feed->set( %$itunes );
    my $item1 = $feed->add_item( 'http://example.com/blog/2006/0227/' );
    $item1->title( "2006/02/27 podcasting" );
    my $podcast = {
        'enclosure@url'     =>  'http://example.com/blog/2006/0227/audio.mp3',
        'enclosure@length'  =>  1048576,
        'enclosure@type'    =>  'audio/mpeg',
    };
    $item1->set( %$podcast );
    my $item2 = $feed->add_item( 'http://example.com/blog/2006/0228/' );
    $item2->title( "2006/02/27 video podcast" );
    my $videopod = {
        'enclosure@url'     =>  'http://example.com/blog/2006/0228/video.m4v',
        'enclosure@length'  =>  5242880,
        'enclosure@type'    =>  'video/quicktime',
    };
    $item2->set( %$videopod );

�ȉ��̂悤�� RSS �t�@�C������������܂��B

    <?xml version="1.0" encoding="UTF-8" ?>
    <rss version="2.0" xmlns:itunes="http://www.itunes.com/DTDs/Podcast-1.0.dtd">
    <channel>
        <itunes:author>Yusuke Kawasaki</itunes:author>
        <itunes:category text="2nd level">
            <itunes:category text="3rd level" />
        </itunes:category>
        <itunes:image href="http://example.com/image.jpg" />
        <link>http://example.com/</link>
        <title>Yusuke Kawasaki's podcasting!</title>
        <item>
            <enclosure length="1048576" type="audio/mpeg"
                url="http://example.com/blog/2006/0227/audio.mp3" />
            <link>http://example.com/blog/2006/0227/</link>
        </item>
        <item>
            <enclosure length="5242880" type="video/quicktime"
                url="http://example.com/blog/2006/0228/video.m4v" />
            <link>http://example.com/blog/2006/0228/</link>
        </item>
    </channel>
    </rss>

�ł��AiPod �̎��@�ł͓���m�F���Ă܂���B�����Ȃ�������S�����i�T�C�B

�X�V����

�R�����g�͂������ by AjaxCom

���̑��̃y�[�W�ւ̃����N

Kawa.netxp © Copyright 2006-2011 Yusuke Kawasaki