Я пытался найти приличное решение для этого, но я даже не мог найти неприличное.
У меня есть XML-файл, который выглядит примерно так:
<Root>
<Something>
<SomethingElse>Value of SomethingElse</SomethingElse>
</Something>
...
<Map>
<Node>
<Path>/Root/Something/SomethingElse</Path>
</Node>
<Map>
...
</Root>
Я хочу написать XSL-преобразование, которое будет принимать элемент <Path>
и использовать его значение text()
в качестве запроса XPath для применения преобразования к элементу <SomethingElse>
, что приведет к чему-то вроде, например:
<text>Value of SomethingElse</text>
Первое, что пришло мне в голову, было что-то вроде:
<xsl:template match="Path">
<text><xsl:value-of select="{text()}"/></text>
</xsl:template>
но это, конечно, не работает, поскольку select
не является атрибутом значения.
Я понятия не имею, как это сделать. Поиск Google дал только результаты о том, как использовать XPath для получения текстовых значений, а не наоборот.
Я также хотел бы применить дополнительные преобразования к возвращенному элементу <SomethingElse>
, но это должно быть очень просто, как только я пойму, как это сделать.
Спасибо большое за то, что вы так далеко,
Slampisko