用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了。

Qr

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

» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144779743 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号