HTMLに変換したいXMLがあるとします。XMLは、順序付けられたセクションに分割されています。
<?xml version="1.0" encoding="utf-8"?>
<root>
<section attr="someCriteria">
<h1>Title 1</h1>
<p>paragraph 1-1</p>
<p>paragraph 1-2</p>
</section>
<section attr="someOtherCriteria">
<h3>Subtitle 2</h3>
<ul>
<li>list item 2-1</li>
<li>list item 2-2</li>
<li>list item 2-3</li>
<li>list item 2-4</li>
</ul>
</section>
<section attr="anotherSetOfCriteria">
<warning>
Warning: This product could kill you
</warning>
</section>
<section attr="evenMoreCriteria">
<disclaimer>
You were warned
</disclaimer>
</section>
<section attr="criteriaSupreme">
<p>Copyright 1999-2011</p>
</section>
</root>
私はこれらのXMLドキュメントをいくつか持っています。基準に基づいてこれらのセクションをグループ化して変換する必要があります。2種類のバケットがあります。
- したがって、最初のセクションはバケットに入れられます(例
<div class="FormatOne"></div>
) - 2番目のセクションが「FormatOne」バケットの資格を得る基準を満たしている場合、それもこのバケットに入れられます
- 3番目のセクションに別のバケットが必要な場合(例
<div class="FormatTwo"></div>
)、新しいバケットが作成され、セクションの内容がこのバケットに配置されます - 4番目のセクションのバケットに「FormatOne」(以前のフォーマットとは異なる)が必要な場合は、新しいバケットが再度作成され、セクションの内容がこのバケットに配置されます。
- など。各セクションは、同じ形式の場合、前のセクションと同じバケットに入ります。そうでない場合は、新しいバケットが作成されます。
したがって、各ドキュメントについて、バケットを分離するためのロジックによっては、ドキュメントは次のようになる可能性があります。
<body>
<div class="FormatOne">
<h1>Title 1</h1>
<p>paragraph 1-1</p>
<p>paragraph 1-2</p>
<h3>Subtitle 2</h3>
<ul>
<li>list item 2-1</li>
<li>list item 2-2</li>
<li>list item 2-3</li>
<li>list item 2-4</li>
</ul>
</div>
<div class="FormatTwo">
<span class="warningText">
Warning: This product could kill you
</span>
</div>
<div class="FormatOne">
<span class="disclaimerText"> You were warned</span>
<p class="copyright">Copyright 1999-2011</p>
</div>
</body>
これ:
<body>
<div class="FormatOne">
<h1>Title 1</h1>
<p>paragraph 1-1</p>
<p>paragraph 1-2</p>
<h3>Subtitle 2</h3>
</div>
<div class="FormatTwo">
<ul>
<li>list item 2-1</li>
<li>list item 2-2</li>
<li>list item 2-3</li>
<li>list item 2-4</li>
</ul>
</div>
<div class="FormatOne">
<span class="warningText">
Warning: This product could kill you
</span>
<span class="disclaimerText"> You were warned</span>
<p class="copyright">Copyright 1999-2011</p>
</div>
</body>
またはこれさえ:
<body>
<div class="FormatOne">
<h1>Title 1</h1>
<p>paragraph 1-1</p>
<p>paragraph 1-2</p>
<h3>Subtitle 2</h3>
<ul>
<li>list item 2-1</li>
<li>list item 2-2</li>
<li>list item 2-3</li>
<li>list item 2-4</li>
</ul>
<span class="warningText">
Warning: This product could kill you
</span>
<span class="disclaimerText"> You were warned</span>
<p class="copyright">Copyright 1999-2011</p>
</div>
</body>
セクションの定義方法によって異なります。
XSLTを使用してこのタイプのグループ化マジックを実行する方法はありますか?
どんな助けでも素晴らしいでしょう。ありがとう!