2013-02-28 3 views
1

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

<xsl:variable name='nl'><xsl:text> 
</xsl:text></xsl:variable> 

, а затем в моей замены,

<xsl:value-of select(replace($data,' ',$nl) /> 

однако, каждый, какой путь я попробовать это, он печатает буквального «# x0A;» в файле

Я попытался обновляя XSL: ВЫХОДНОЙ методу = «текст», однако это приводит многие другие странные результаты

Я просто хочу, чтобы появиться новая строка, а не «# x0A;» строковое представление этого

+0

ИЗБЕЖАТЬ пробелы в XSLT коде. Лучшим методом было бы присвоить переменную « » или « » .. –

ответ

3

Хм, из того, что вы отправили, я не совсем уверен, что вы сделали неправильно. Когда вы набрали новую строку в шестнадцатеричном формате, вы забыли амперсанд? Простая ошибка. И с точки зрения дизайна, я предлагаю использовать шестнадцатеричный код для новой строки, поскольку он чище и трудно случайно удалить.

Этот код работает:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 

<xsl:variable name="newline"> 
    <xsl:text>&#xa;</xsl:text> 
</xsl:variable> 

<xsl:template match="/"> 
    <xsl:variable name="data"> 
    <xsl:text>This is a string</xsl:text> 
    </xsl:variable> 
    <xsl:value-of select="replace($data,' ', $newline)" /> 
</xsl:template> 

</xsl:stylesheet> 

Выход именно то, что мы ожидаем:

This 
is 
a 
string 
+1

Если ваша цель состоит в том, чтобы поместить новые атрибуты IN, прочитайте следующее: http://stackoverflow.com/questions/2004386/how-to-save- newlines-in-xml-attribute – ljdelight

+0

' ' = ' ' любой должен работать .. +1 для руководства в хорошем направлении .. –

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