人間が生成した長い XML ファイルがあり、その内容は Xpath を使用して識別できるほど規則性があります。これを HTML テーブルとして再フォーマットしようとしています。
ソース マテリアルは、視覚効果のためだけに技術的にテーブルとしてフォーマットされています (これ以上は説明しません)。問題なのは、各エントリの説明部分に任意のマークアップが含まれる可能性があり、それを追加処理のために渡す必要があることです。説明の内容を取得して適切に処理する方法がわかりません。
value-of または copy-of を使用しても、期待どおりの結果が得られません。おそらく、何か明らかなことを見逃しているのでしょう。
サンプルドキュメント:
<?xml version="1.0" encoding="UTF-8"?>
<manual>
<body>
<chapter>
<table>
<thead>
<row>
<entry>
<para>Some parameter name</para>
</entry>
<entry>
<para>1</para>
</entry>
</row>
</thead>
<tbody>
<row>
<entry>
<para>Range</para>
</entry>
<entry>
<para>1–10</para>
</entry>
</row>
<row>
<entry>
<para>Description</para>
</entry>
<entry>
<para>Sets the type of process module.</para>
<para>There can be <emphasis>more arbitrary markup</emphasis> in here.</para>
<list>
<item>Even a list</item>
</list>
</entry>
</row>
</tbody>
</table>
<!-- and so on -->
</chapter>
</body>
</manual>
私は次のXSLTスニペットのバリエーションを試してきました
<xsl:for-each select="table">
<tr>
<!-- insert additional code here -->
<td class="desc"> <xsl:value-of select="//tbody/row[2]/entry[2]/*"><xsl:apply-templates select="@*|node()" /></xsl:value-of> </td>
</tr>
</xsl:for-each>
答え1
考えすぎでした。あるいは考えが足りなかったのかもしれません。
<td class="desc">
<xsl:apply-templates select="tgroup/tbody/row[2]/entry[2]/*" />
</td>