0

新しいスキーマに基づいて、XSLT を介して新しい XML 出力を作成するように求められます。私はすでにそれをしました。この質問のボーナスは、新しい xsl ファイルを生成して HTML テーブルを作成し、前の xsl ファイルの出力からの基準に基づいて結果をランク付けすることです。

たとえば、元の XML では次のようになります。

<PROPERTY>
<NAME>Abvc</NAME>
</PROPERTY>

最初の xsl ファイルで、これを xml 出力に変更し、タグの名前を変更しました。

<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
  <xsl:element name="pro">
    <xsl:apply-templates select="PROPERTY"/>
  </xsl:element>
</xsl:template>

<xsl:template match="PROPERTY">
  <xsl:attribute name="name">
    <xsl:value-of select="NAME"/>
  </xsl:attribute>
</xsl:template>

私の質問は、上記の xslファイルからの出力を別の xslで使用したい場合です。

<xsl:template match="pro">
  //do something here...
</xsl:template>

出来ますか?ところで、デフォルトの xslt 1.0 バージョンを使用する必要があります。それは要件です。

4

2 に答える 2

0

はい、別のスタイルシートを使用して 1 つのスタイルシートの出力を処理することは常に可能です。大規模なアプリケーションでは、モジュール構造と再利用可能なコンポーネントを作成する重要な方法であり、通常は「パイプライン化」と呼ばれます。

パイプラインを構築する方法の仕組みは、使用しているテクノロジーによって異なります。Java プログラム、XProc、Ant、またはシェル スクリプトを使用して制御できます。手で行うこともできます。Orbeon など、パイプラインをサポートするアプリケーション フレームワークは多数あります。

于 2012-05-10T14:59:40.690 に答える
0

ここに単純な HTML 出力があります。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="html" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" indent="yes"/>

<xsl:template match="/">
    <xsl:apply-templates select="pro"/>
</xsl:template>

<xsl:template match="pro">
    <html>
        <body>
            <table border="1">
                <th>
                    <xsl:value-of select="'Header'"/>
                </th>
                <tr>
                    <td><xsl:value-of select="./@name"/></td>
                </tr>
            </table>    
        </body>
    </html>
</xsl:template>

</xsl:stylesheet>
于 2012-05-10T14:09:25.837 に答える