我有一个要求将一个巨大的 XML文档转换为多个HTML文档。 的XML如下:XSLT - 适合任务吗?
<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结构等
当然,我可以简单地写但我正在寻找'应用转换模板'的方法,而不是程序分析和修改,以便能够将模板交给其他用户进行进一步修改(CSS,格式化等)。
我使用的红宝石+引入nokogiri(这是一组绑定到的libxslt),但也可以使用任何语言。
如果XSTL是一个坏适合这个任务,还有什么其他的仪器可以在这里使用,只要我必须几分钟的小内存占用变换用户的〜1M?
额外的好处是能够并行处理。
谢谢。
谢谢Carles,我会试试你的解决方案,并写一个更新什么工作,以及如何与简单的基准。 – Valentin
嗨瓦伦丁,你设法给这个选项一试吗?我对基准测试结果很好奇 –
嗨Carles,我只实现了一个简单的“概念验证”模板,撒克逊版本比libxml快4倍,现在我正在开发一个完整的模板,它是数千行,只要准备就绪,我会更新问题。 – Valentin