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でコケることがあるので必要に応じてエラーハンドリングを入れてご使用ください。