2

単純な 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しかし、別のボタンがあり、そのスタイル ルールがない場合は、デフォルトの外観にする必要があります。それが明らかであることを願っています。

4

1 に答える 1

3

classXSLTForms によって生成されたボタン要素に属性を直接追加することはできません。

ただし、代わりに、次のように適用する CSS ルールを定義できます。

#myclass button {
  color: red;
}

トリガーでクラスを使用します。

<xf:trigger class="myclass >

すべての XForms コントロールで同じです。ブラウザーのインスペクターを見て、生成されたコントロールを確認してください。

于 2014-07-30T17:22:21.990 に答える