単純な XML ドキュメントを XForms に変換し、最終結果にスタイルを追加しようとしています。私はXSLTForms実装を使用しており、ローカルの CSS ファイル (Twitter のブートストラップ) を指しています。したがって、XML ファイルは次のようになります。
<structure>
<part class="Container" id="container">
<part class="Button" id="b1"/>
</part>
</structure>
<style>
<property part-name="b1" name="label">Submit</property>
</style>
これらのパーツを XForms ドキュメントに変換する私の XSLT:
<xsl:key name="buttonLabels" match="property[@name='label']" use="@part-name"/>
<xsl:template match="part[@class='Button']"><!-- [key('buttonActions', @id)]-->
<xsl:element name="xf:trigger">
<xsl:attribute name="id">
<xsl:value-of select="@id | @size | @style"/>
</xsl:attribute>
<xsl:element name="xf:label">
<xsl:value-of select="key('buttonLabels', @id)"/>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="part[@class='Container']">
<xsl:element name="div">
<xsl:attribute name="class">container</xsl:attribute>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
今、これは生成します:(これは私が現在必要としているものには問題ありません)
<div class="container">
<xf:trigger id="b1">
<xf:label>Submit</xf:label>
</xf:trigger>
</div>
しかし、これにいくつかのスタイル ルールを追加したいと思います <xf:trigger>
。問題は、それがhtml要素に変換されると、構造は
|_span
|_span
|_button
|_span (for the label)
したがって、XSLT 変換を行う方法がわからないため、let's sayclass="btn-danger"
属性を<button>
タグに挿入します。
言い換えれば、最終的な Html でそのようなものを取得する必要があります: (現在は取得していますがclass="btn-danger"
、button
タグに はありません)
<span id="b1">
<span>
<button type="button" class="btn-danger">
<span id="xsltforms-mainform-label-2_6_2_4_3_" class="xforms-label">Submit</span>
</button>
</span>
</span>
<xsl:attribute name="class">btn-danger</xsl:attribute>
また、のテンプレートにを追加してみましxf:trigger
たが、最初の span 要素に属性が挿入されます。何か案は?前もって感謝します!
アップデート:
要素をhtmlxforms:trigger
要素に変換するための XSLT は、このリンクに
あります- http://bpaste.net/show/c42CtcIcjbsI6GFGWK2q/ XML ファイルからボタンのスタイルを指定できます。例えば:
<structure>
<part class="Container" id="container">
<part class="Button" id="b1"/>
</part>
</structure>
<style>
<property part-name="b1" name="label">Submit</property>
<property part-name="b1" name="style">btn-danger</property>
</style>
ここでは、パーツ名を一致させて、ボタンにたとえばid="b1"
cssスタイルのルールを持たせたいと言っています。btn-danger
しかし、別のボタンがあり、そのスタイル ルールがない場合は、デフォルトの外観にする必要があります。それが明らかであることを願っています。