Существуют различные способы встраивания этого в ваш полный XSLT, но предположим, что вы рассматриваете элемент <CityNameComplete>
в качестве замены элемента <AirportName>
из исходного документа Xml.
Затем ключ XSLT в <value-of>
элемент:
<xsl:template match="/Root/Item/AirportName">
<CityNameComplete><xsl:value-of select="../CityName"/> (<xsl:value-of select="../AirportCode"/>) - <xsl:value-of select="."/></CityNameComplete>
</xsl:template>
Это даст элемент
<CityNameComplete>ANDORRA LA VELLA (ALV) - Andorra La Vella Hlpt</CityNameComplete>
в результате.
Update: Если вы действительно хотите, чтобы пустое пространство вокруг полное название города, добавьте его <xsl:text> </xsl:text>
в таблице стилей:
<xsl:template match="/Root/Item/AirportName">
<CityNameComplete><xsl:text> </xsl:text><xsl:value-of select="../CityName"/> (<xsl:value-of select="../AirportCode"/>) - <xsl:value-of select="."/><xsl:text> </xsl:text></CityNameComplete>
</xsl:template>
Результат:
<CityNameComplete> ANDORRA LA VELLA (ALV) - Andorra La Vella Hlpt </CityNameComplete>
Update 2: Включено код IATA.
Update 3: Альтернативное решение для вставки узла является, чтобы добавить его в шаблон для <Item>
элемента:
<xsl:template match="/Root/Item">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
<CityNameComplete><xsl:text> </xsl:text><xsl:value-of select="CityName"/> (<xsl:value-of select="AirportCode"/>) - <xsl:value-of select="AirportName"/><xsl:text> </xsl:text></CityNameComplete>
</xsl:copy>
</xsl:template>
Заметим, что вы должны удалить узлы, которые вы не хотите точно получите свой результат - поскольку вы этого не просили, и, поскольку я не хотел загромождать ответ, я не включил никакого кода о том, как это сделать.
Где детальное объяснение того, как это работает? Как бы то ни было, этот ответ не очень полезен для будущих посетителей. –
@ O.R.Mapper - код был достаточно прост, я не думал, что это требует подробного объяснения. У ОП не было никаких вопросов, прежде чем принимать ответ, и любой будущий посетитель мог также попросить разъяснений. Я добавил комментарии, чтобы объяснить, что делает код. Если у вас есть конкретный вопрос, на который не распространяются комментарии, сообщите мне. –
Ах, ну, чаще всего одна постоянная Интернета заключается в том, что автор оригинального ответа больше не будет отвечать к тому времени, когда будущий посетитель действительно что-то спросит ;-) Лучше сразу дать объяснения, пока не стало слишком поздно , –