Xslt генератор в SQL-код - PullRequest
0 голосов
/ 13 июня 2011
  <xsl:output method="text" omit-xml-declaration="yes" />
<xsl:template match="/Update/Object/Insert">
  Insert into <xsl:value-of select="@Table" />(
  <xsl:for-each select="Field">
    <xsl:value-of select="@Name" />,      
  </xsl:for-each>)
  Values(
    <xsl:for-each select="Field">
      <xsl:value-of select="@Value" />,
    </xsl:for-each>)
</xsl:template>

Выход: Вставить в Good ( GoodCode, ...

) Ценности( 1, ...
)

как вы видите, есть лишний "," вопрос в том, как я могу это исправить?

    <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='book.xslt'?>
<Update>
  <Object Name="Good">
    <Insert Table="Good">
      <Field Name="GoodCode" Value="1" Type="Integer" />
      <Field Name="GoodUserCode" Value="" Type="String" />
</insert>
</object>

1 Ответ

2 голосов
/ 13 июня 2011

используйте что-то вроде этого:

 <xsl:output method="text" omit-xml-declaration="yes" />
   <xsl:template match="/Update/Object/Insert">
      Insert into <xsl:value-of select="@Table" />(
   <xsl:for-each select="Field">
      <xsl:value-of select="@Name" /><xsl:if test = "position() != last()">, </xsl:if>      
   </xsl:for-each>)
   Values(
   <xsl:for-each select="Field">
      <xsl:value-of select="@Value" /><xsl:if test = "position() != last()">, </xsl:if>
   </xsl:for-each>)
 </xsl:template>

http://www.w3schools.com/xsl/el_if.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...