У меня есть несколько таких записей:
<place label="Juan Fernandez"><placeName>Juan Fernandez</placeName><location><geo>-33.666667, -78.833333</geo></location></place>
и я хочу преобразовать его в
<span label="Juan Fernandez" data-boo-coordinates ="-33.666667, -78.833333"> Juan Fernandez <location><geo>-33.666667, -78.833333</geo></location></span>
для метки, никакой суеты:
<xsl:template match="tei:place">
<xsl:element name="span">
<xsl:attribute name="label">
<xsl:text>{@label}</xsl:text>
</xsl:attribute>
Я решил, что нечто подобное должно работать, и попробовал несколько вещей, которые я перечислю ниже: вполне естественно, что следующее не работает:
<xsl:attribute name="data-boo-coordinates">
<xsl:value-of select="geo"/>
</xsl:attribute>
Однако я подумал, что это должно работать:
<xsl:attribute name="data-boo-coordinates">
<xsl:value-of select="place/location/geo"/>
</xsl:attribute>
полный шаблон для элементов-мест
<xsl:template match="tei:place">
<xsl:element name="span">
<xsl:attribute name="label">
<xsl:text>{@label}</xsl:text>
</xsl:attribute>
<xsl:attribute name="data-boo-coordinates">
<xsl:value-of select="*/location/geo"/>
</xsl:attribute>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
Как видите, я снова немного изменил, надеясь, что он получит текст узла с помощью <xsl:value-of>
. Я что-то делаю. Совершенно глупо здесь?
всего наилучшего и спасибо за ваше время, K