0
ヘイ、XSLTコピー同じ兄弟他の兄弟まで、私はXSLT 1.0を使用して、リスト次変換するtrieingい
を表示されます。
<div data-class="a"/>
<div data-class="b"/>
<div data-class="b"/>
<div data-class="c"/>
<div data-class="b"/>
<div data-class="a"/>
<div data-class="b"/>
<div data-class="c"/>
<div data-class="d"/>
<div data-class="a"/>
<div data-class="a"/>
それは次のようにデータを変換する必要があります。
<div data-class="a">
<div data-class="b"/>
<div data-class="b">
<div data-class="c"/>
</div>
<div data-class="b"/>
</div>
<div data-class="a">
<div data-class="b">
<div data-class="c">
<div data-class="d"/>
</div>
</div>
</div>
<div data-class="a"/>
<div data-class="a"/>
<div data-class="b">
<div data-class="c"/>
<div data-class="c"/>
</div>
</div>
私は時間からそれを正しく変換しようとしています。 は、私がコピータグを使用しています、それを変換するには、次の
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
<xsl:template match="div[@data-class='a']">
<xsl:copy>
<xsl:apply-templates select="node() | @* | following-sibling::div[@data-class='b']" />
</xsl:copy>
</xsl:template>
<xsl:template match="div[@data-class='a']">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
<xsl:apply-templates select="following-sibling::div[@data-class='b']" />
</xsl:copy>
</xsl:template>
<xsl:template match="div[@dataclass='b']">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
<xsl:apply-templates select="following-sibling::div[@data-class='c']" />
</xsl:copy>
</xsl:template>
問題は、データ・クラスのすべての次の要素が取られていることである - 私を助けてください。 ありがとう!
階層内のいくつかのロジックはありますか?あるいは、明示的に 'b'を' a'の下に、 'c'を' b'の下に置かなければならないのでしょうか? –