巨大なXMLドキュメントを複数のHTMLドキュメントに変換する必要があります。XMLは次のとおりです。
<society>
<party_members>
<member id="1" first_name="" last_name="O'Brien">
<ministry_id>1</ministry_id>
<ministry_id>3</ministry_id>
</member>
<member id="2" first_name="Julia" last_name="">
<ministry_id>2</ministry_id>
</member>
<member id="3" first_name="Winston" last_name="Smith">
<ministry_id>1</ministry_id>
</member>
</party_members>
<ministries>
<ministry>
<id>1</id>
<short_title>Minitrue</short_title>
<long_title>Ministry of truth</long_title>
<concerns>News, entertainment,education and arts </concerns>
</ministry>
<ministry>
<id>2</id>
<short_title>Minipax</short_title>
<long_title>Ministry of Peace</long_title>
<concerns>War</concerns>
</ministry>
<ministry>
<id>3</id>
<short_title>Minilove</short_title>
<long_title>Ministry of Love</long_title>
<concerns>Dissidents</concerns>
</ministry>
</ministries>
</society>
党員の潜在的な数が非常に多くなる可能性がある場合(数百万人)、省庁の数は少なく、約300〜400人です。パーティメンバーごとに、次のコンテンツを含む出力HTMLが必要です。
<html>
<body>
<h2>Party member: Winston Smith</h2>
<h3>Works in:</h3>
<div class="ministry">
<h4>Ministry of truth</h4> - Minitrue
<h5>Ministry of truth <i>concerns</i> itself with <i>News, entertainment,education and arts</i></h5>
</div>
</body>
</html>
出力ドキュメントの数は、==パーティメンバーの数である必要があります。
現在XSLTに苦労していますが、XSLTを機能させることができません。
XSLTがこのジョブに適しているかどうかを判断するのを手伝ってください。そうである場合は、XSLTを実装する方法、どのXSLT構造を使用する必要があるかなどを教えてください。
もちろん、手続き型言語でミニ変換を書くこともできますが、手続き型の解析や変更ではなく、「変換テンプレートの適用」アプローチを探して、テンプレートを他のユーザーに渡してさらに変更できるようにします(CSS、フォーマット等)。
私はruby+nokogiri(libxsltへのバインディングのセットです)を使用していますが、任意の言語を使用できます。
XSTLがこのタスクに適していない場合、メモリ消費量を少なくして数分で最大100万人のユーザーを変換する必要がある場合、ここで他にどのような機器を使用できますか?
追加の利点は、処理を並列化できることです。
ありがとうございました。