Weiterleitung des Inhalts des XML-Knotens zur weiteren Verarbeitung in XSLT

Weiterleitung des Inhalts des XML-Knotens zur weiteren Verarbeitung in XSLT

Ich habe eine lange, von Menschen erstellte XML-Datei mit ausreichender Regelmäßigkeit, um ihren Inhalt mithilfe von Xpath identifizieren zu können. Ich versuche, sie als HTML-Tabelle neu zu formatieren.

Das Quellmaterial ist technisch gesehen nur aus optischen Gründen als Tabelle formatiert (fangen Sie mich damit gar nicht erst an). Wo ich auf Probleme stoße, ist, dass der beschreibende Teil jedes Eintrags beliebige Markierungen enthalten kann, die ich zur weiteren Verarbeitung weitergeben muss. Ich habe noch nicht herausgefunden, wie ich den Inhalt der Beschreibung abrufen und entsprechend verarbeiten kann.

Ich erhalte mit value-of oder copy-of nicht die gewünschten Ergebnisse. Wahrscheinlich übersehe ich etwas Offensichtliches.

Beispieldokument:

<?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>

Ich habe Variationen des folgenden XSLT-Snippets ausprobiert

        <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> 

Antwort1

Ich habe zu viel darüber nachgedacht. Oder vielleicht zu wenig.

<td class="desc">
   <xsl:apply-templates select="tgroup/tbody/row[2]/entry[2]/*" />
</td>

verwandte Informationen