XSLT: использовать значение ссылочного элемента
Я хотел бы получить значение элемента, на который ссылается другой элемент через уникальный идентификатор. Например:
<when xml:id="TLI_2" interval="7.683988796743416" since="#T_START"/>
<annotationBlock who="#H-F" start="#TLI_2" end="#TLI_3">
<u xml:id="Ladida"><incident>
<desc>TiH</desc>
</incident><w xml:id="wd1e235">das</w><w xml:id="wd1e237">war</w><w
xml:id="wd1e239">die</w><w xml:id="wd1e241">erste</w><w xml:id="wd1e243"
>große</w><w xml:id="wd1e245">liebe</w><incident>
<desc>schnitt</desc>
</incident></u>
</annotationBlock>
Мне нужно соответствовать значению атрибута interval
, Определенный когда элемент ссылается атрибутом в <annotationBlock>
, Итак, мои текущие XSLT-шаблоны выглядят примерно так:
<xsl:template match="annotationBlock/u/w">
<when>
<xsl:attribute name="interval">
<xsl:value-of select="../../From here i don't know what to do"/>
<!-- The value should be the value of the interval-attribute of the referenced when-element -->
</xsl:attribute>
</when>
</xsl:template>
Большое спасибо за вашу помощь!
1 ответ
Предполагая, что вы хотите выбрать when
элемент его xml:id
значение атрибута, которое вы можете использовать id('TLI_2')
сделать это в контексте w
элементы с предком annotationBlock
Я думаю ты хочешь id(ancestor::annotationBlock/@start/substring(., 2))
выбрать when
стихия и конечно id(ancestor::annotationBlock/@start/substring(., 2))/@interval
выбрать его interval
приписывать.
Компактный способ использовать это внутри вашего шаблона будет внутри шаблона значения атрибута
<xsl:template match="annotationBlock/u/w">
<when interval="{id(ancestor::annotationBlock/@start/substring(., 2))/@interval}">