XSLT xsl: когда отрезает остальную часть XML - PullRequest
0 голосов
/ 04 октября 2019

Мои XSL и XML можно найти здесь .

Проблема, вероятно, что-то в этой части:

            <xsl:when test="property/property[@name='text_key' and value = 'presentation' and ../property[@name='text_value']]">
                <property>
                    <property name="text_value">
                        <value><xsl:value-of select="property" /> <xsl:call-template name="special" /></value>
                    </property>
                </property>
            </xsl:when>

Это вызывает остальное сокращение XMLпосле применения текста «добавить этот текст». Я хотел бы получить все остальные элементы свойств после этого в готовом XML. Цель состоит в том, чтобы просто добавить «добавить этот текст» к свойству презентации.

1 Ответ

0 голосов
/ 04 октября 2019

Я думаю, что вы просто хотите написать дополнительные шаблоны для тех property или value элементов, которые вы хотите изменить, например, таких как

<xsl:param name="special">add this text</xsl:param>

<xsl:template match="property[@name = 'itemgroup']/value">
    <xsl:copy>new itemgroup</xsl:copy>
</xsl:template>

<xsl:template match="property[property[@name='text_key' and value = 'presentation']]/property[@name = 'text_value']/value">
    <value><xsl:value-of select="concat(., $special)"/></value>
</xsl:template>

https://xsltfiddle.liberty -development.net / jz1PuNZ /1 имеет полный пример. Что касается concat(., $special), я не совсем уверен, является ли . правильным, но я не мог сказать из всех вложенных property, какое значение вы хотите вывести.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...