Я новичок и пытаюсь использовать тест вэлемент, чтобы увидеть, является ли текущий узел потомком предыдущего узла.Затем я хочу применить соответствующий тег HTML к содержанию.Я новичок с выражениями xpath.
В частности, я хотел бы применить теги
к элементам , которые являются потомками элемента .Я хотел бы применить теги к элементам , которые являются потомками элементов .Мое лучшее предположение, что я должен использоватьэлемент в моемэлемент.Я попробовал несколько разных выражений xpath в тесте, но ни одно из них не сработало.
Вопрос: Естьлучший вариант для этого?
Вот мой документ xml, соответствующая часть.Структура документа не может быть изменена.
<table>
<tgroup>
<thead>
<trow>
<tcell>Column Head Text</tcell>
<tcell>Column Head Text</tcell>
</trow>
</thead>
<tbody>
<trow>
<tcell>Cell Text</tcell>
<tcell>Cell Text</tcell>
</trow>
</tbody>
</tgroup>
</table>
Я хочу использовать XSL / XPath для генерации таблицы со строкой заголовка и строками тела.Моя таблица стилей XSL выглядит следующим образом:
<xsl:template match="/">
<html>
<body>
<xsl:apply templates />
</body>
</html>
</xsl:template>
<xsl:template match="table">
<table>
<xsl:apply-templates />
</table>
</xsl:template>
<xsl:template match="tgroup">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="thead">
<thead>
<xsl:apply-templates />
</thead>
</xsl:template>
<xsl:template match="tbody">
<tbody>
<xsl:apply-templates />
</tbody>
</xsl:template>
<xsl:template match="trow">
<tr>
<xsl:apply-templates />
</tr>
</xsl:template>
<!-- MY TROUBLE STARTS HERE -->
<xsl:template match="tcell">
<xsl:choose>
<xsl:when test="current()!=descendant::tbody">
<th>
<xsl:value-of select="."/>
</th>
</xsl:when>
<xsl:otherwise>
<td>
<xsl:value-of select="."/>
</td>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Любая помощь будет оценена.
Пример вывода html
<table>
<tgroup>
<thead>
<tr>
<th>Column Head Text</th>
<th>Column Head Text</th>
<tr>
</thead>
<tbody>
<tr>
<td>Cell Text</td>
<td>Cell Text</td>
</tr>
</tbody>
</tgroup>
</table>
Спасибо, M_66