2014-02-26 3 views
0

Я получаю следующий результат после выполнения преобразования xslt2.0.Преобразование XSLT2.0, генерирующее теги в нескольких строках

<TAG mode="w" 
      name="x" 
      references="x" 
      size="5005" 
      type="string"/> 

Я бы хотел, чтобы это было сброшено в одну строку.

<TAG mode="w" name="x" references="x" size="5005" type="string"/> 

код, который разбивает строки:

<xsl:output method="xml" encoding="UTF-8" byte-order-mark="no" indent="yes"/> 
<xsl:template name="agt:var1_function1"> 
    <xsl:param name="par0" as="node()"/> 
    <TAG> 
     <xsl:sequence select="($par0/@node(), $par0/node())"/> 
    </TAG> 
</xsl:template> 

Можете ли вы предложить мне то, что я делаю неправильно здесь и почему эта линия разбивается на несколько строк?

С наилучшими пожеланиями Раджеш

+0

Вы забыли опубликовать неверный результат. – Oscar

+0

Спасибо Оскар. Отступ был неправильным. – user3355730

+0

Ваш вопрос дублируется http://stackoverflow.com/questions/1922882/xsl-remove-a-line-break-from-text – Oscar

ответ

1

Если ваш процессор XSLT является Saxon 9, то он имеет опцию сериализации http://www.saxonica.com/documentation/html/extensions/output-extras/line-length.html вы можете установить, чтобы определить длину линии, в которой атрибуты должны поставить на новую строку. Поскольку вы не хотите разрывов строк, я бы использовал очень высокое значение, например.

<xsl:output xmlns:saxon="http://saxon.sf.net/" saxon:line-length="5000"/> 
+0

Спасибо Мартин, я попробовал вариант сериализации, но все тот же результат. Я запускаю xslt из командной строки java -jar saxon9he input.xml transform.xslt -o: output.xml мне нужно что-то изменить в команде – user3355730

+0

@ user3355730, когда я пытаюсь использовать Saxon 9.5 HE, тогда я получаю сообщение об ошибке говоря: «Ошибка трансформации: запрошенная функция (пользовательская сериализация {http://saxon.sf.net/}line-length) требует Saxon-PE", поэтому я боюсь, что опция не поддерживается для HE. С другой стороны, я не понимаю, почему вы не получили ту же ошибку. С Saxon 9.5 PE я вижу, что 'saxon: length-length' работает до тех пор, пока установлен' xsl: output indent = "yes" '. –

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