Hatena::ブログ(Diary)

”><xmp>TokuLog 改メ tokuhirom’s blog このページをアンテナに追加 RSSフィード

XML::Atom::Base->as_xml を呼ぶと元のオブジェクト破壊される件

as_xml が破壊><

use strict;
use warnings;
use Test::More tests => 5;
use XML::Atom::Feed;

my $file = "t/samples/atom-1.0.xml";
open my $fh, $file or die "$file: $!";

my $feed = XML::Atom::Feed->new(Stream => $fh);
isa_ok $feed, 'XML::Atom::Feed';

my @entry = $feed->entries;
is @entry, 1, "1 entry";
my $entry = $entry[0];
is $entry->title, 'Atom draft-07 snapshot';

my $XML = <<'...';
<?xml version="1.0" encoding="utf-8"?>
<content xmlns="http://www.w3.org/2005/Atom" type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
         <div xmlns="http://www.w3.org/1999/xhtml">
           <p><i>[Update: The Atom draft is finished.]</i></p>
         </div>
       </content>
...

is $entry->content->as_xml, $XML;
is $entry->content->as_xml, $XML;
--- lib/XML/Atom/Base.pm.org    2008-11-10 10:31:13.000000000 +0900
+++ lib/XML/Atom/Base.pm        2008-11-10 10:31:22.000000000 +0900
@@ -343,7 +343,7 @@
     my $obj = shift;
     if (LIBXML) {
         my $doc = XML::LibXML::Document->new('1.0', 'utf-8');
+        $doc->setDocumentElement($obj->elem);
-        $doc->setDocumentElement($obj->elem->cloneNode(1));
         return $doc->toString(1);
     } else {
         return '<?xml version="1.0" encoding="utf-8"?>' . "\n" .

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/tokuhirom/20081110/1226280757