2010-05-17 3 views
3

Использование XML: LibXSLT в Perl требует использования XSLT 1.0, что означает, что я застрял без функций XSLT 2.0. Есть ли способ, по которому я все еще могу писать текст в текстовом виде из моей обработки? То, что я хочу это:XSLT 1 Простой текстовый интервал

<values> 
    <headers> 
     <header>Header 1</header> 
     <header>Header 2</header> 
    </headers> 
    <value> 
     <one>First value 1</one> 
     <two>First value 2</two> 
    </value> 
    <value> 
     <one>Second value 1</one> 
     <two>Second value 2</two> 
    </value> 
    .... 
    <value> 
     <one>Nth value 1</one> 
     <two>Nth value 2</two> 
    </value> 
</values> 

Чтобы стать

Header 1   Header 2 
First value 1  First value 2 
Second value 1 Second value 2 
.... 
Nth value 1  Nth value 2 

Я понимаю, что XSLT не обязательно идеально подходит для этого типа форматирования, но данные будут также, вероятно, будет отформатирован в другими способами.

ответ

2

Существует всегда «дешевый» способ заполнения текста с помощью постоянной строки и делает копию графа, необходимого для прокладки, как это:

<xsl:variable name="space" select="'      '" /> 
<xsl:variable name="text" select="'Header 1'" /> 
<xsl:value-of select="concat($text,substring($space,string-length($text)))" /> 
+0

работает как шарм, спасибо. – justkt

+0

Вам не нужно использовать здесь пространство сохранения? Просто спрашиваю. http://www.w3schools.com/xsl/el_preserve-space.asp – 2010-05-17 17:20:38

+1

@AJ: Нет. Обратите внимание, что в запросе, заданном в вопросе, есть текст, а не XML или HTML. – Lucero

Смежные вопросы