Форматирование XSLT-документа - PullRequest
3 голосов
/ 13 марта 2012

У меня есть XSLT-файл для преобразования данных из таблицы в операторы INSERT.Таким образом, вывод выглядит как

INSERT INTO some_table VALUES (Voda, Šenov);

INSERT INTO some_table VALUES (Vorba, Vlčnov);

, что хорошо для меня.Мой XSLT содержит эти три строки

<xsl:for-each select="PAGE/ROWSET/ROW">
  INSERT INTO some_table VALUES (<xsl:value-of select="SURNAME"/>, <xsl:value-of select="CITY"/>);
</xsl:for-each>

И вот вопрос, я действительно не хочу помещать так много значений в одну строку (моя таблица имеет как 20 столбцов), чтобы поддерживать форматирование в выводе, так есть ли способ сохранить вывод одинаковым и мои столбцы в INSERT на нескольких строках в for-each?

Большое спасибо за ответы

РЕДАКТИРОВАТЬ

Я бы хотел, чтобы цикл for-each был таким

<xsl:for-each select="PAGE/ROWSET/ROW">
  INSERT INTO some_table VALUES va1 ,val2 (
         <xsl:value-of select="SURNAME"/>, 
         <xsl:value-of select="CITY"/>);
</xsl:for-each>

1 Ответ

5 голосов
/ 13 марта 2012

Попробуйте

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

    <xsl:output method="text" version="1.0" encoding="UTF-8"/>
    <xsl:template match="/">
        <xsl:for-each select="PAGE/ROWSET/ROW">
            <xsl:text>INSERT INTO some_table VALUES val1 ,val2 (</xsl:text>
                 <xsl:value-of select="SURNAME"/><xsl:text>, </xsl:text>
                 <xsl:value-of select="CITY"/><xsl:text>);</xsl:text>
                 <xsl:text>&#xA;</xsl:text>
        </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

В XML Spy, с вводом

<?xml version="1.0" encoding="UTF-8"?>
<PAGE>
    <ROWSET>
        <ROW>
            <SURNAME>sn1</SURNAME>
            <CITY>c1</CITY>
        </ROW>
        <ROW>
            <SURNAME>sn2</SURNAME>
            <CITY>c2</CITY>
        </ROW>
    </ROWSET>
</PAGE>

Я получаю

INSERT INTO some_table VALUES val1 ,val2 (sn1, c1);
INSERT INTO some_table VALUES val1 ,val2 (sn2, c2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...