用XSLT把XML的数据输入数据库
2005/7/2 15:02:54
阅读全文(2413) | 回复(1) | 编辑 | 精华
作者:jx27 引自:http://bbs.xml.org.cn 注:经本人测试,此例不仅限于MY SQL,且适用于大多数DATABASE 用XSLT把XML的数据输入数据库(MY SQL)的例子: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <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了。
Posted by Qr on 2005/7/2 15:02:54
回复:用XSLT把XML的数据输入数据库
2007/9/6 16:43:44
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
这个到底是什么意思 不明白 LINUX的COMMEND LINE里直接输入文件名就能自动INSERT INTO DATABASE了。
mfm(游客)
Posted by mfm(游客) on 2007/9/6 16:43:44
发表评论: |