-- 作者:jx27
-- 发布时间:6/17/2005 7:56:00 AM
--
以下是我的用XSLT把XML的数据输入数据库(MY SQL)的例子: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output method = "text" indent = "yes"/> <xsl:template match = "/" > <xsl:apply-templates select="*"/> </xsl:template> <!-- get the value to insert into the table "Qnre" --> <xsl:template match = "Qnre"> <xsl:text>insert into Qnre values ('</xsl:text> <xsl:value-of select="@id"/> <xsl:text>','</xsl:text> <xsl:value-of select="@client"/> <xsl:text>','</xsl:text> <xsl:value-of select="@author"/> <xsl:text>','</xsl:text> <xsl:value-of select="@contact"/> <xsl:text>','</xsl:text> <xsl:value-of select="@version"/> <xsl:text>','</xsl:text> <xsl:value-of select="@topic"/> <xsl:text>','</xsl:text> <xsl:value-of select="@date"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qtitle"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qtitle/@clientlogo"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/@privacy"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/@heading"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/@para"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/@Qitem"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qbody/@action"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qbody/@uploads"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qbody/@bid"/> <xsl:text>'); </xsl:text> <!-- set to <Qsection> --> <xsl:apply-templates select="Qbody/Qsection"/> </xsl:template> <!-- get the value to insert into the table "Qsection" --> <xsl:template match = "Qsection"> <xsl:text>insert into Qsection values ('</xsl:text> <xsl:value-of select="/Qnre/@id"/> <xsl:text>','</xsl:text> <xsl:value-of select="@sid"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/Qprivacy"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/Qheading"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/Qpara"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/Qitem"/> <xsl:text>','</xsl:text> <xsl:value-of select="goto"/> <xsl:text>'); </xsl:text> <!-- set to <Question> --> <xsl:apply-templates select="Question"/> </xsl:template> <!-- get the value to insert into the table "Question" --> <xsl:template match="Question"> <xsl:text>insert into Question values ('</xsl:text> <xsl:value-of select="/Qnre/@id"/> <xsl:text>','</xsl:text> <!-- set to <Qsection> --> <xsl:value-of select="../@sid"/> <xsl:text>','</xsl:text> <xsl:value-of select="@qid"/> <xsl:text>','</xsl:text> <xsl:value-of select="@kind"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/Qprivacy"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/Qheading"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/Qpara"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qintro/Qitem"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qtext"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qanswer/Qother"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qanswer/@answertype"/> <xsl:text>','</xsl:text> <xsl:value-of select="Qanswer/Qlink/@goto"/> <xsl:text>'); </xsl:text> <!-- set to <Qchoice> --> <xsl:apply-templates select="Qanswer/Qchoice"/> </xsl:template> <!-- get the value to insert into the table "Qchoice" --> <xsl:template match="Qchoice"> <xsl:text>insert into Qchoice values ('</xsl:text> <xsl:value-of select="/Qnre/@id"/> <xsl:text>','</xsl:text> <xsl:value-of select="/Qnre/Qbody/Qsection/@sid"/> <xsl:text>','</xsl:text> <!-- set to <Question> --> <xsl:value-of select="../../@qid"/> <xsl:text>','</xsl:text> <xsl:value-of select="@val"/> <xsl:text>','</xsl:text> <xsl:value-of select="/Qother/Qlink/@goto"/> <xsl:text>','</xsl:text> <xsl:value-of select="."/> <xsl:text>'); </xsl:text> </xsl:template> </xsl:stylesheet> /=========== 输出结果文件可以另存为SQL FILE。然后在LINUX的COMMEND LINE里直接输入文件名就能 自动INSERT INTO DATABASE了。
|