Linuxなどのメモ書き

Perl XMLをインデントして出力する


Rev.1を表示中。最新版はこちら

XML::DOMでDOM Treeを操作してtoStringすると出力されるXMLはインデントされないので読みにくい。

XML::Twigでインデントできる。


use strict;
use warnings;
use XML::DOM;
use XML::Twig;

my $xmlSrc = "";
$xmlSrc .= $_ while <DATA>;

my $parser = new XML::DOM::Parser;
my $doc = $parser->parse($xmlSrc);
my $name = $doc->createElement("Name");
$name->addText("bar");
$doc->getDocumentElement->appendChild($name);
my $xmlDst = $doc->toString;
print $xmlDst;    # インデントされない

my $twig= new XML::Twig;
$twig->set_indent(" "x2);
$twig->parse($xmlDst);
$twig->set_pretty_print("indented");
my $indentedXML = $twig->sprint;
print $indentedXML;

__DATA__
<?xml version="1.0"?>
<Members>
  <Name>foo</Name>
</Members>



最終更新 2006/09/09 12:39:16 - kztomita
(2006/09/09 12:39:16 作成)


リンク

その他のWiki
Linuxメモ
Xnuメモ

会社
(有)ビットハイブ
受託開発やってます。

よくやる仕事

・Webシステム開発(LAMP環境)
・Linuxサーバー設定関連
サーバー移転作業代行

開発事例にデジタルカタログ/マンガビューワーを追加しました。

draggable.jsのスマホ対応版デモページを追加しました。説明はこちら

検索

Adsense
最近のコメント