Я хотел бы получить отдельные имена элементов из моего XML-файла с помощью XSLT-1.0.XSLT - Как получить отдельные имена элементов из XML?
XML:
<forms>
<form1>
<metadata>
<c1>some value</c1>
<c2>some value</c2>
</metadata>
<set>
<subset1>
<c3>some value</c3>
<c4>some value</c4>
<c5>some value</c5>
</subset1>
<subset2>
<c3>some value</c3>
<c4>some value</c4>
<c6>some value</c6>
</subset2>
</set>
</form1>
<form2>
...
</form2>
</forms>
Мой результат должен выглядеть, как показано ниже, когда я прохожу имя формы в XSLT. Например, если я прохожу "Form1" он должен получить мне отдельные элементы данных, доступные внутри моей <form1>
тега так:
c1, c2, c3, c4, c5, c6
Кроме того, Я попробовал этот XSLT и его возвращение этого:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:for-each select=
"//*/*/*[not(../following::*/*
[not(name() = name(current()))]
)
]">
<xsl:value-of select="concat(name(), ' ')"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Выход:
Set1, set2, subset1, subset2, c3 , С4, с6
Ожидаемый результат:
c1, c2, c3, c4, c5, c6
Кроме того, как передать мое имя формы (т.е. form1
) моему XSLT?
Что определяет «элемент данных»? –
Я имел в виду только элемент (т. Е. Узлы ..., , и т. Д.) –
user972255
'set1' также является элементом. На какой основе это должно быть исключено? --- P.S. Какой процессор XSLT 1.0 вы будете использовать? Вы действительно можете использовать функцию расширения здесь, если хотите ограничить результат определенной ветвью. –