再フォーマットしたい次のフォーマットの XML があります。
<blocks>
<!-- === apples === -->
<block name="block1">
...
</block>
<!-- === bananas === -->
<block name="block2">
...
</block>
<!-- === oranges === -->
<block name="block3">
...
</block>
</blocks>
私の問題は、各ブロック タグの上にあるコメントを選択する方法がわからないことです。次の XSL があります。
<xsl:template match="//blocks">
<xsl:apply-templates select="block" />
</xsl:template>
<xsl:template match="block">
<xsl:apply-templates select="../comment()[following-sibling::block[@name = ./@name]]" />
<xsl:value-of select="./@name" />
</xsl:template>
<xsl:template match="comment()[following-sibling::block]">
<xsl:value-of select="."></xsl:value-of>
</xsl:template>
私がしようとしている出力は次のとおりです。
=== りんご ===
block1
=== バナナ ===
block2
=== オレンジ ===
block3
しかし、私が得ることができる最高のものは次のとおりです。
=== リンゴ ===
=== バナナ
===
===オレンジ === ブロック 1 === リンゴ
===
=== バナナ ===
=== オレンジ ===
ブロック 2
=== リンゴ == =
=== バナナ ===
=== オレンジ ===
block3
それが違いを生む場合、私はPHPを使用しています。