2010-09-08 2 views
1

Есть ли простой способ разблокировки прокладки, IE, ведущего и/или заднего пробела. Функция дополнения EXSLT, по-видимому, создает только прописные или триммерные строки до определенной длины.XSL Strip Padding

+1

Что такое «стрип обивка "? отредактируйте свой вопрос и дайте конкретный пример того, что вы хотите! –

+0

Об управлении пространством в белом пространстве существует более одного сценария ... См. Http://stackoverflow.com/questions/184431/converting-xml-to-plain-text-using-xslt-how-should-i-ignore-handle -whitespace/185048 # 185048 –

ответ

1

Будет ли нормализовать пространство() выполнять работу за вас? Это также уменьшит пробелы внутри строки, например.

" this   string " 

стал бы:

"this string" 

Если вам действительно нужна функция "подрезать", вы, вероятно, можете steal one from someone else who's already implemented it с normalizse пространством() ...

+1

Или можно использовать функцию замены (http://www.w3.org/TR/xpath-functions/#func-replace). Он должен работать более или менее (т. Е. Непроверен) следующим образом: «replace (string, '^ \ s * (. *?) \ S * $', '')'. – musiKk

2

Попробуйте нормализовать пространство

<xsl:value-of select='normalize-space(string)'/> 
0

Непонятно, что нужно - что такое «полоска прокладки»?

Если вы имели в виду функцию облицовку(), а затем

FXSL library обеспечивает удобный trim шаблонную функцию.

Это преобразование:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

    <xsl:import href="trim.xsl"/> 

    <xsl:output method="text"/> 
    <xsl:template match="/"> 
    '<xsl:call-template name="trim"> 
     <xsl:with-param name="pStr" select="string(/*)"/> 
    </xsl:call-template>' 
    </xsl:template> 
</xsl:stylesheet> 

при нанесении на этом XML-документ:

<someText> 

    This is some text 

</someText> 

производит разыскиваемого, правильный результат:

'This is some text' 
Смежные вопросы