StackExchange, я надеюсь, что кто-то здесь может помочь мне с этой проблемой!
Я работаю в XSLT 1.0, пытаясь встроить таблицу поиска для преобразования некоторых неформатированных данных в стандартизированную отформатированную структуру.
Я читал, искал и пробовал различные методы для этого, и ни один из них не смог дать результата. (Хотя я тоже не получаю никаких ошибок.)
Ниже приведен образец XSL, с которым я работаю:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:lookup="lookup" exclude-result-prefixes="lookup">
<xsl:key name="lookup_table" match="lookup:table/row" use="@raw"/>
<lookup:table>
<row raw="raw1" corrected="Raw One"/>
<row raw="raw2" corrected="Raw Two"/>
<row raw="raw3" corrected="Raw Three"/>
<row raw="raw4" corrected="Raw Four"/>
<row raw="raw5" corrected="Raw Five"/>
</lookup:table>
<xsl:template match="/">
<xsl:variable name="lookup_table" select='document("")//lookup:table/row'/>
<xsl:variable name="value_to_lookup" select="'raw1'"/>
<!-- In the actual XSL document, this variable would use an XPath to point to another attribute. -->
<!-- In this case, the value of this variable must be changed manually. -->
<xsl:value-of select='document("")//lookup:table/row[@raw = $value_to_lookup]/@corrected'/>
<xsl:value-of select='document("")//lookup:table[@raw = $value_to_lookup]/@corrected'/>
<xsl:value-of select='$lookup_table[@raw = $value_to_lookup]/@corrected'/>
<xsl:value-of select="key('lookup_table',$value_to_lookup)/@corrected"/>
<!-- The above lines are the various methods I've seen documented on other websites that claim these methods should allow me to what I need to. -->
<!-- There is no need to have multiple identical results, I only have multiple attempts here to document the steps I have tried. -->
</xsl:template>
</xsl:stylesheet>
Текущий вывод этого кода - ничто (буквально).
Желаемый результат, когда переменная value_to_lookup
равна "raw1":
Raw One
Для дальнейшего пояснения, желаемый результат, когда переменная value_to_lookup
равна "raw4":
Raw Four
Вывод этого бита кода будет сохранен в переменной и вызван позже при необходимости.
Спасибо еще раз!