我有以下xml:
<root>
<rdf:RDF
....
....>
<skos:Concept rdf:about="http://aims.fao.org/skosmos/agrovoc/en/page/c_26321">
<skos:prefLabel xml:lang="fa">آبیس ماریزیای</skos:prefLabel>
....
<skos:prefLabel xml:lang="en">Abies mariesii</skos:prefLabel>
<skos:broader rdf:resource="http://aims.fao.org/skosmos/agrovoc/en/page/c_10"/>
</skos:Concept>
<skos:Concept rdf:about="http://aims.fao.org/aos/agrovoc/c_5886">
<skos:prefLabel xml:lang="tr">Pinaceae</skos:prefLabel>
....
<skos:prefLabel xml:lang="en">Pinaceae</skos:prefLabel>
....
<skos:narrower rdf:resource="http://aims.fao.org/aos/agrovoc/c_10"/>
</skos:Concept>
请注意,skos:Concept 是 skos:prefLabel 的父节点,其值为 Abies mariesii 和 Pinaceae。在这种情况下,Abies mariesii 是一个广义术语 (),而松科是一个狭义术语 ()
我有以下 xslt:
<xsl:template match="root">
<xsl:for-each select="rdf:RDF">
<xsl:text>START HERE</xsl:text>
<xsl:text> </xsl:text>
<xsl:apply-templates select="skos:Concept" />
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
<xsl:template match="skos:Concept">
<xsl:if test="skos:broader">
<xsl:for-each select="skos:prefLabel|skos:Concept" />
<xsl:text>=301 \\$abroader$b</xsl:text><xsl:value-of select="skos:prefLabel[@xml:lang='en']" /><xsl:text>$c</xsl:text><xsl:value-of select="./@rdf:about" />
<xsl:text> </xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="skos:Concept">
<xsl:if test="skos:narrower">
<xsl:for-each select="skos:prefLabel|skos:Concept" />
<xsl:text>=302 \\$anarrower$b</xsl:text><xsl:value-of select="skos:prefLabel[@xml:lang='en']" /><xsl:text>$c</xsl:text><xsl:value-of select="./@rdf:about" />
<xsl:text> </xsl:text>
</xsl:if>
</xsl:template>
....
使用这个特定的模板,只有一个正在处理,后一个。我该如何进行这个迭代?处理两者 - 更广泛和更窄。
提前致谢!