'affiliation'要素をXSLTの 'for-each'コンテキストにある 'contrib'要素に移動するにはどうすればよいですか?要素をXSLTの別の変換要素に移動するにはどうすればよいですか?
入力XML:
<article>
<authors>Amrendra, Kumar; Mohan, Kumar</authors>
<affiliation id="Amrendra, Kumar">Amrendra, Kumar</affiliation>
<affiliation id="Mohan, Kumar">Mohan, Kumar</affiliation>
</article>
電流出力:
<contrib-group>
<contrib>
<string-name>Amrendra, Kumar</string-name>
</contrib>
<contrib>
<string-name>Mohan, Kumar</string-name>
</contrib>
<aff id="Amrendra, Kumar">Amrendra, Kumar</aff>
<aff id="Mohan, Kumar">Mohan, Kumar</aff>
</contrib-group>
XSLTコード:
<xsl:template match="authors">
<xsl:choose>
<xsl:when test="not(node())"/>
<xsl:otherwise>
<contrib-group>
<xsl:for-each select="tokenize(., ';')">
<contrib>
<string-name>
<xsl:value-of select="normalize-space(.)"/>
</string-name>
</contrib>
</xsl:for-each>
<xsl:apply-templates select="../affiliation"/>
</contrib-group>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
必要な出力:(AFF/@ IDとのcontrib /#のPCDATAとのマッチング)
私はcontribの内側に「所属」要素を適用しようが、それはエラーの下に表示されます。
[Saxon-PE 9.5.1.7] XPTY0020: Cannot select the parent of the context node: the context item is not a node
を回避するために変化する必要がありますあなたはあなたの問題をしてください示して完全なXSLTを表示することができますか?あなたの実際のXSLTが 'xsl:for-each'構造内で' 'を持たない限り、それ以降ではありません。ありがとうございました。 –
著者と対応する「所属」との正確なリンクは?あなたは3つの場所で同じ値を持っていますが、どのペアを使用するかは分かりません。 –