Я преобразовываю XML в HTML с помощью XSLT. Моя цель - автоматизировать создание повторяющегося HTML, предоставляя ключевую информацию через XML-вход.Вызов xsl: param через вход xml
Итак, я создаю такой XML-документов для хранения строк outputed к заключительному HTML:
<animals>
<animal id="dog">
Our best friend
</animal>
<animal id="cat">
King of the internet
</animal>
<animal id="sheep">
Baaaaaah
</animal>
</animals>
И я обрабатывать эти строки через XLS: Params так:
<xsl:param name="dog" select="/animals/animal[@id='dog']"/>
<xsl:param name="cat" select="/animals/animal[@id='cat']"/>
<xsl:param name="sheep" select="/animals/animal[@id='sheep']"/>
Чтобы я мог использовать эти строки, добавляя этот вид фрагмента к моей таблице стилей:
<ul>
<li><xsl:value-of select="$dog"/></li>
<li><xsl:value-of select="$cat"/></li>
<li><xsl:value-of select="$sheep"/></li>
</ul>
Я хочу пользователь может вызывать строки через входной XML-файл, добавляя в него правильный тег. Таким образом, если входная XML-то вроде этого:
<input_xml>
<animals>
<cat/>
<dog/>
</animals>
</input_xml>
выхода будет
<ul>
<li>King of the internet</li>
<li>Our best friend</li>
</ul>
Я пытаюсь автоматизировать процесс создания такого списка, обернув через тег:
<ul>
<xsl:for-each select="/input_xml/animals">
<li><xsl:value-of select="${tag name}"/></li>
</xsl:for-each>
</ul>
но я не знаю, как захватить входное имя тега xml в select="${tag name}"
. Я попытался с помощью <xsl:value-of select="name()"/>
, но вы не можете вкладывать xsl:value-of
У вас есть два входных документов? Используете ли вы XSLT 1.0 или 2.0? –
Я использую XSLT 2.0. У меня есть предопределенные xml-файлы для хранения повторяющейся информации (животных) и ссылаются на них с помощью ' ', чтобы я мог захватить эту информацию с помощью ' '. Не повторяющаяся информация предоставляется входным XML-файлом. Все это работает очень похоже на решение, предложенное @ zx485 –
@GabrielWarken: Я рад, что я, возможно, приблизил ваш желаемый ответ довольно близко. Но как выглядит ваш желаемый ответ? Будет полезно изменить ваш вопрос. – zx485