Я пытаюсь получить имя следующего имени элемента, используя общий Xpath и общий XSL. Но не удалось получить имя элемента.Следующее имя элемента
Input 1:
<test>
<userId>we</userId>
<userId1>
<testy:tool/>
</userId1>
</test>
Input 2:
<test>
<userId>we</userId>
<userId1>
<testy:hammer/>
</userId1>
</test>
Xsl Я использую:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0"
>
<xsl:template match="operationName">
<xsl:value-of select="local-name(/test/userId1)"/>
<xsl:apply-templates select="local-name(/test/userId1)" mode="next"/>
</xsl:template>
<xsl:template match="testy" mode="next">
<xsl:value-of select="(following::testy | descendant::testy)[1]"/>
</xsl:template>
</xsl:stylesheet>
Но это всегда отображает значение UserID. Может ли кто-нибудь указать, что я делаю неправильно здесь?
Cheers!
Ваших вопрос не совсем понятен. Во-первых, ваш вход недействителен XML. Тогда на вашем входе нет 'operationName' или 'testy', поэтому XSLT ничего не делает. Наконец, неясно, каков ожидаемый результат. –
Результат, который мне нужен, - или на основе входного XML. –
Sammy
Ну, путь к нему - '/ test/userId1/*'. –