Я хочу вывод с пробелами, но я хочу сохранить <xsl:strip-space elements="*"/>
, а также в xslt. В настоящее время, ниже XSLT является «onetwofour», который без пробелов. Если удалить <xsl:strip-space elements="*"/>
выходной тег будет, как ожидается, что это «один два четыре» (обратите внимание на два пробела между словом два & четыре один дополнительное пространство связано с subitem3)избегайте пробелов в дочернем узле
Примечание: «subitem3» тег имеет один пробел, который должен сохранить в выходе.
Есть ли способ, которым я могу хранить тег <xsl:strip-space elements="*"/>
и также иметь пробелы (так что вывод должен быть следующим образом => «один два четыре»).
Если это невозможно из-за включения xsl: strip-space сверху сверху, по крайней мере, пространство для subitem3 может быть сохранено (поэтому ожидаемый результат в этом случае может быть «на четыре» места для уведомления перед словом «четыре» из-за до subitem3)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:template match="item">
<xsl:for-each select="child::node()">
<xsl:choose>
<xsl:when test="name() = 'some_tag'">
<!-- Do nothing for now -->
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="descendant-or-self::text()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
XML:
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<subitem1>one</subitem1> <subitem2>two</subitem2> <subitem3> </subitem3> <subitem4>four</subitem4>
</item>
</items>
присутствует выход: onetwofour
Ожидаемый результат: один два четыре ИЛИ OneTwo четыре
Ваш вопрос непонятен: ваша таблица стилей не совпадает ни с чем в вашем входе, и вы не говорите нам, что ваш выход ** должно быть. –
Пожалуйста, снова посмотрите на мой вопрос, надеемся, что это имеет смысл – user593029