0
このブロックを削除したり、対処したりすることによって、このブロックを別のものに変換する必要があります。別のブロックから別のブロックを属性として追加してブロックを削除する
この出力の中へ<?xml version="1.0" encoding="ISO-8859-1" ?>
<output>
<cars>
<car>
<id>1</id>
<brand>Audi</brand>
<type>A3</type>
<license>B-01-TST</license>
</car>
<car>
<id>2</id>
<brand>Volkwagen</brand>
<type>Golf</type>
<license>IF-02-TST</license>
</car>
</cars>
<distances>
<distance>
<id_car>1</id_car>
<date>20110901</date>
<distance>111</distance>
</distance>
<distance>
<id_car>1</id_car>
<date>20110902</date>
<distance>23</distance>
</distance>
<id_car>2</id_car>
<date>20110901</date>
<distance>92</distance>
</distance>
<distance>
<id_car>2</id_car>
<date>20110902</date>
<distance>87</distance>
</distance>
</distances>
</output>
:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<output>
<cars>
<car>
<id>1</id>
<brand>Audi</brand>
<type>A3</type>
<license>B-01-TST</license>
<distances>
<distance day="20110901">111</distance>
<distance day="20110902">23</distance>
</distances>
</car>
<car>
<id>2</id>
<brand>Volkwagen</brand>
<type>Golf</type>
<license>IF-02-TST</license>
<distances>
<distance day="20110901">92</distance>
<distance day="20110902">87</distance>
</distances>
</car>
</cars>
</output>
今では私だけの距離ブロックを削除し、正しい場所にそれを追加することができましたが、どのように私は車/ ID主催の距離を得ることができますし、日付のタグを属性の日として距離に追加しますか?ここで は、私がこれまで何をやったかである:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@* |node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="distances" />
<xsl:template match="license">
<xsl:copy-of select="."/>
<distances></distances>
</xsl:template>
</xsl:stylesheet>
感謝それは働いている人!これは、あなたがid_carでcar/car/idと一致するkey distを使用していることを意味しますか?いいえ、私はちょうど 'select =" key( 'dist'、../id) – orosco03
鍵を使ったことはありますか?キーの宣言は、XSLTプロセッサに 'distance'要素の' distance'子要素のインデックスを '' xsl:key name = "dist" match = "distance/distance" use = "id_car" id_car'値を取得し、 'key'関数を使用してそのような値で' distance'を見つけることができます。 'license'テンプレートの中で、私たちが使用したい' id'は 'key( 'dist'、../id)'を呼び出すために必要な親 'car'の一部です。 –
私はちょうどXSLを勉強しています、私は前にキーを使用していなかったので、それは非常に有用だった、ありがとう男! – orosco03