我正在嘗試在進行轉換時寫入'NULL'。 轉換是爲了在MySQL數據庫中插入數據。 我已經試過這樣:標籤爲空時使用XSL轉換寫'NULL'
> <xsl:if test="incidencia =''"> <xsl:text>'NULL</xsl:text> </xsl:if>
但它不工作。
這是我的XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<entregats>
<envio id="GI-000008">
<estats totalestats="3">
<estat datahora="2012-12-02T12:01:55">
<IDEstat>CAM</IDEstat>
<incidencia> No s ha pogut trobar el cami </incidencia>
</estat>
<estat datahora="2012-12-03T12:01:55">
<IDEstat>CAM</IDEstat>
<incidencia> Destinetari Absent</incidencia>
</estat>
<estat datahora="2012-12-04T12:02:55">
<IDEstat>CAM</IDEstat>
<incidencia> Destinetari Absent </incidencia>
</estat>
</estats>
<receptor>
<nom>J</nom>
<cognom>R</cognom>
<telefon>972510125</telefon>
<adreca>C/ZopeZope, nº15</adreca>
<codipostal>19000</codipostal>
</receptor>
</envio>
<envio id="GI-000009">
<estats totalestats="2">
<estat datahora="2012-12-01T09:01:55">
<IDEstat>CAM</IDEstat>
</estat>
<estat datahora="2012-12-01T12:01:55">
<IDEstat>ENT</IDEstat>
</estat>
</estats>
<receptor>
<nom>X</nom>
<cognom>S</cognom>
<cognom>P</cognom>
<telefon>972500025</telefon>
<adreca>C/Patatones, nº27</adreca>
<codipostal>17000</codipostal>
</receptor>
</envio>
<envio id="GI-000010">
<estats totalestats="3">
<estat datahora="2012-12-05T08:21:57">
<IDEstat>CAM</IDEstat>
</estat>
<estat datahora="2012-12-06T15:21:57">
<IDEstat>CAM</IDEstat>
</estat>
<estat datahora="2012-12-07T15:21:57">
<IDEstat>ENT</IDEstat>
</estat>
</estats>
<receptor>
<nom>D</nom>
<cognom>H</cognom>
<cognom>P</cognom>
<telefon>972500125</telefon>
<adreca>C/Oracle, nº12</adreca>
<codipostal>17000</codipostal>
</receptor>
</envio>
</entregats>
這是我的XSL:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xd="http://www.oxygenxml.com/ns/doc/xsl" exclude-result-prefixes="xd" version="1.0">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:apply-templates select="//envio" />
</xsl:template>
<xsl:template match="envio">
<xsl:for-each select="estats/estat">
<xsl:text>INSERT INTO HISTORIC_ESTATS (IDEnvio,DATAHORA,IDESTAT,INCIDENCIA) values (</xsl:text>
<xsl:text>'</xsl:text>
<xsl:value-of select="../../@id"/><xsl:text>','</xsl:text>
<xsl:value-of select="@datahora"/><xsl:text>','</xsl:text>
<xsl:value-of select="IDEstat"/><xsl:text>'</xsl:text>
<xsl:if test="incidencia =''">
<xsl:text>'NULL</xsl:text>
</xsl:if>
<xsl:if test="incidencia !=''">
<xsl:text>,'</xsl:text> <xsl:value-of select="incidencia"/>
<xsl:text>'</xsl:text>
</xsl:if>
<xsl:text>); </xsl:text>
</xsl:for-each>
</xsl:template> </xsl:stylesheet>
如果有人可以提供幫助。
我已經得到的輸出是這樣的:
INSERT INTO HISTORIC_ESTATS (IDEnvio,DATAHORA,IDESTAT,INCIDENCIA) values ('GI-000008','2012-12-02T12:01:55','CAM',' No s ha pogut trobar el cami ');
INSERT INTO HISTORIC_ESTATS (IDEnvio,DATAHORA,IDESTAT,INCIDENCIA) values ('GI-000008','2012-12-03T12:01:55','CAM',' Destinetari Absent');
INSERT INTO HISTORIC_ESTATS (IDEnvio,DATAHORA,IDESTAT,INCIDENCIA) values ('GI-000008','2012-12-04T12:02:55','CAM',' Destinetari Absent ');
INSERT INTO HISTORIC_ESTATS (IDEnvio,DATAHORA,IDESTAT,INCIDENCIA) values ('GI-000009','2012-12-01T09:01:55','CAM');
INSERT INTO HISTORIC_ESTATS (IDEnvio,DATAHORA,IDESTAT,INCIDENCIA) values ('GI-000009','2012-12-01T12:01:55','ENT');
INSERT INTO HISTORIC_ESTATS (IDEnvio,DATAHORA,IDESTAT,INCIDENCIA) values ('GI-000010','2012-12-05T08:21:57','CAM');
INSERT INTO HISTORIC_ESTATS (IDEnvio,DATAHORA,IDESTAT,INCIDENCIA) values ('GI-000010','2012-12-06T15:21:57','CAM');
INSERT INTO HISTORIC_ESTATS (IDEnvio,DATAHORA,IDESTAT,INCIDENCIA) values ('GI-000010','2012-12-07T15:21:57','ENT');
,我需要的不是incidencia時寫「NULL」。
謝謝各位! – kimpa2007