РЕДАКТИРОВАТЬ: Пример теперь содержит все теги, которые находятся в моем основном документе
Привет всем!У меня просто был быстрый вопрос о XSLT.У меня есть большой XML-файл с множеством <DIMENSION_Id>
узлов, вложенных друг в друга.В каждом <DIMENSION_Id>
узле есть два тега SYN: <SYN>String</SYN><SYN>Integer</SYN>
Я пытаюсь взять самый дальний дочерний узел каждого DIMENSION_Id и соединить его со всеми путями его предков, чтобы создать URL.
то есть
<DIMENSIONS VERSION="1.0.0">
<DIMENSION NAME="Category" SRC_TYPE="INTERNAL">
<DIMENSION_NODE ID="1000"/>
<DIMENSION_Id>
<SYN>Text</SYN>
<SYN>Number</SYN>
<DIMENSION_Id>
<SYN>More Text</SYN>
<SYN>Another Number</SYN>
</DIMENSION_Id>
</DIMENSION_Id>
</DIMENSION>
</DIMENSIONS>
Я написал этот XSLT, чтобы сначала получить всю информацию от родительских узлов, а затем дочерний узел, чтобы создать полный URL.К сожалению, он только дает мне информацию о самом дальнем дочернем узле ... Я не знаю, как добавить к нему любой другой текст.(он должен читать что-то вроде: furthest-parent / close-parent / parent / item_selected)
К сожалению, все, что он делает, это дает мне значение текущего узла .... Вот XSLT, который я написал:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/DIMENSION_NODE">
<xsl:for-each select="ancestor-or-self::*">
<xsl:value-of select="@SYN" />
<xsl:text>/</xsl:text>
<xsl:value-of select="." />
<xsl:value-of select="@SYN" />
<xsl:text>/</xsl:text>
<xsl:value-of select="." />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Заранее спасибо за помощь!