Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 格式化XSLT文档_Xml_Xslt_Text - Fatal编程技术网

Xml 格式化XSLT文档

Xml 格式化XSLT文档,xml,xslt,text,Xml,Xslt,Text,我有一个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

我有一个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>
试一试


你为什么要把它们放在同一条线上?是否有无法将参数放在不同行上的原因?请参阅我的编辑。问题是,我将对这段代码进行一些调试,以便对其进行良好的格式化:-)如果您要使用带有“虚拟格式”(无制表符/空格的自动缩进)的XML编辑器,那么行长将不是问题,因为您的XML将始终正确地包装到编辑器边距,但仍然正确地缩进。当然,如果您稍后切换到传统的“填充格式”编辑器,就会出现问题。+1。请注意,这些值必须至少用单引号括起来。为了更安全地防止SQL注入(和断开的代码),必须对值本身中的单引号进行转义,这将需要一个字符串替换函数。
<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>
<?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 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);