#xml #xslt
#xml #xslt
Вопрос:
Как объединить родительский тег с именем дочернего тега в XSLT
В настоящее время я могу получить значения родительского и дочернего узлов, но я не знаю, как объединить их в одно значение
<xsl:value-of select="name()"/> //gives child name
<xsl:value-of select="name(..)"/> //gives parent name
Я хочу сделать что-то вроде <xsl:value-of select="concat(name(..),name())"/>
таким образом, результатом будет Parent_Child
Ответ №1:
Существует несколько вариантов:
concat()
-
Несколько
value-of
, например<xsl:value-of select="name()"/>_<xsl:value-of select="name(..)"/>
Комментарии:
1. Спасибо. Как я могу получить родительский элемент следующего уровня, например name (…) ?. Но… не работает
2. Я не понимаю вопроса. Вы ищете
../..
? Илиancestor-or-self::*
ось?3.
concat()
под вопросом функция. Чего не хватает в этом ответе, так это примера. Это было быconcat(name(..),'-',name())
.
Ответ №2:
Если вы хотите создать новое имя элемента на основе этого
<xsl:element name="{concat(name(..),'_',name(.))}"/>