Я просто заблудился при использовании xsl1.0. Я пытаюсь получить отчетливый вывод каждой 'строки', когда данные разбиты на несколько дочерних элементов.
Предоставлен этот источник данных ..
<?xml version="1.0" encoding="utf-8"?>
<Root>
<row>
<data>
<a>
<b>
<c>
<Vehicle>
<ManufacturerName>BM</ManufacturerName>
</Vehicle>
</c>
<c>
<Vehicle>
<ManufacturerName>FORD</ManufacturerName>
</Vehicle>
</c>
<c>
<Vehicle>
<ManufacturerName>VAUXHALL</ManufacturerName>
</Vehicle>
</c>
<c>
<Vehicle>
<ManufacturerName>VAUXHALL</ManufacturerName>
</Vehicle>
</c>
</b>
</a>
<a>
<b>
<c>
<Vehicle>
<ManufacturerName>VAUXHALL</ManufacturerName>
</Vehicle>
</c>
<c>
<Vehicle>
<ManufacturerName>ALPHA</ManufacturerName>
</Vehicle>
</c>
<c>
<Vehicle>
<ManufacturerName>BRAVO</ManufacturerName>
</Vehicle>
</c>
</b>
</a>
</data>
</row>
<row>
<data>
<a>
<b>
<c>
<Vehicle>
<ManufacturerName>CHARLIE</ManufacturerName>
</Vehicle>
</c>
<c>
<Vehicle>
<ManufacturerName>ALPHA</ManufacturerName>
</Vehicle>
</c>
<c>
<Vehicle>
<ManufacturerName>VAUXHALL</ManufacturerName>
</Vehicle>
</c>
</b>
</a>
<a>
<b>
<c>
<Vehicle>
<ManufacturerName>BM</ManufacturerName>
</Vehicle>
</c>
<c>
<Vehicle>
<ManufacturerName>ALPHA</ManufacturerName>
</Vehicle>
</c>
</b>
</a>
</data>
</row>
</Root>
Я хочу получить вывод, который выглядит следующим образом.
BM, FORD, VAUXHALL, ALPHA, BRAVO,
CHARLIE, ALPHA, VAUXHALL, BM,
Извините, если раньше об этом спрашивали, но я не мог понять, как выбрать отличительный значения для каждой строки. Мои текущие результаты показывают только значения в первой строке, а любые повторяющиеся значения в других строках не отображаются.
Любая помощь будет принята с благодарностью.
В настоящее время мой xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="Root">
<xsl:apply-templates select="row"/>
</xsl:template>
<xsl:template match="row">
<xsl:apply-templates select="data/a/b/c/Vehicle[not(ManufacturerName=preceding::Vehicle/ManufacturerName)]"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="data/a/b/c/Vehicle">
<xsl:value-of select="ManufacturerName"/>
<xsl:text>,</xsl:text>
</xsl:template>
</xsl:stylesheet>
с таким результатом.
BM,FORD,VAUXHALL,ALPHA,BRAVO,
CHARLIE,