Учитывая элемент:
<comments> comments
go here
</comments>
Как может я разделять то, что может быть несколькими ведущими пробелами. Я не могу использовать, нормализуют пространство, потому что я должен сохранить новые строки и такой. XSLT 2.0 хорошо.
Используйте функцию replace()
:
replace($input,'^ +','')
Она обрабатывает ведущие пробельные символы только до первого непробела. Если вы хотите удалить все символы пробела (т.е. пробел, nl, cr, tab) до первого не пробела, используйте:
replace($input,'^\s+','')
В XPath 1.0 (означает и XSLT 1.0):
substring($input,
string-length(
substring-before($input,
substring(translate($input, ' ', ''),
1,
1)
)
) +1
)
обернуто в XSLT-преобразование:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:variable name="input"
select="string(/*/text())"/>
<xsl:template match="/">
'<xsl:value-of select=
"substring($input,
string-length(
substring-before($input,
substring(translate($input, ' ', ''),
1,
1)
)
) +1
)
"/>'
</xsl:template>
</xsl:stylesheet>
когда это преобразование применяется к следующему XML-документу:
<t> XXX YYY Z</t>
получается правильный, желаемый результат:
'XXX YYY Z'