[Perl] XMLをJSONに変換

PerlでXMLをJSONに変換する処理は定番!…だと思っていたのですが、Web系のAPIサービスなどを使用しない人にとっては意外に馴染みがないらしく知らない人が多かったので参考までに。

use strict;
use utf8;
use JSON;
use XML::Simple;

my $xml = join('', <DATA>);

my $xs = XML::Simple->new;
my $ref = $xs->XMLin($xml);
my $json = JSON->new->utf8(0)->encode($ref);

print $json;

__DATA__
<?xml version="1.0"?>
<HelpSession>
<ApplyTo SKU="Server">
<TopicToDisplay>ms-its:%HELP_LOCATION%\rktools.chm::/rktools_overview.htm</TopicToDisplay>
<Context ID="SubSite">
<TaxonomyPath>_System_/Tools_Center</TaxonomyPath>
<NodeToHighlight>_System_/Tools_Center/Introduction_to_Resource_Kit_Tools</NodeToHighlight>
</Context>
</ApplyTo>
<ApplyTo SKU="Desktop">
<TopicToDisplay>ms-its:%HELP_LOCATION%\rktools.chm::/rktools_overview.htm</TopicToDisplay>
<Context ID="SubSite">
<TaxonomyPath>_System_/Tools_Center</TaxonomyPath>
<NodeToHighlight>_System_/Tools_Center/Introduction_to_Resource_Kit_Tools</NodeToHighlight>
</Context>
</ApplyTo>
</HelpSession>

サンプルなのでここでは省いていますが、XMLの構文が正しくなかったりする場合などにXMLinでコケることがあるので必要に応じてエラーハンドリングを入れてご使用ください。

    この記事へのコメント

    メールアドレスが公開されることはありません。

    頂戴したコメントは管理者に承認されるまで表示されません。