如何 "grab text of a node" 并将其作为数据元素放入 html
How to "grab text of a node" and put it as data-element in html
我有几个这样的条目:
<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
当我对 select 使用以下内容时,它确实有效:
<xsl:attribute name="data-boo-coordinates">
<xsl:value-of select="child::location/geo"/>
</xsl:attribute>
上下文很重要,我猜 :-/
任何人都可以暗示更优雅的答案吗?
为什么不能使用文字结果元素和属性值模板
<xsl:template match="tei:place">
<span label="{@label}" data-boo-coordinates="{location/geo}">
<xsl:apply-templates/>
</span>
</xsl:template>
我有几个这样的条目:
<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
当我对 select 使用以下内容时,它确实有效:
<xsl:attribute name="data-boo-coordinates">
<xsl:value-of select="child::location/geo"/>
</xsl:attribute>
上下文很重要,我猜 :-/
任何人都可以暗示更优雅的答案吗?
为什么不能使用文字结果元素和属性值模板
<xsl:template match="tei:place">
<span label="{@label}" data-boo-coordinates="{location/geo}">
<xsl:apply-templates/>
</span>
</xsl:template>