动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Xml → 阅读文章

 用XSLT把XML的数据输入数据库

作者来源: 
阅读 2261 人次 , 2006-2-16 14:45:00 

注:经本人测试,此例不仅限于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了。

  
 本文Tags数据库  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:用XML和XSL来生成动态页面
· 下一篇:XSL-FO 学习笔记
· 使用c#如何读取xml文件
· 保护 XML Web 服务免受黑客攻击(1)
· XML Schema教程
· XML轻松学习手册(4)XML的术语之一
· flash中通过XMLSocket监控生产系统(1-2)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077