• 【简单示例:数据库表转XML】


    目的:文本用来将数据库中的数据映射为XML格式的数据,并显示在页面上。

    预备知识:
    1)XML:

    XML 指可扩展标记语言(EXtensible Markup Language)
    XML 是一种标记语言,很类似 HTML
    XML 的设计宗旨是传输数据,而非显示数据
    XML 标签没有被预定义。您需要自行定义标签。
    XML 被设计为具有自我描述性。
    XML 是 W3C 的推荐标准

    2) XSLT:

    XSLT 是一种用于将 XML 文档转换为 XHTML 文档或其他 XML 文档的语言。

    XSLT 指 XSL 转换(XSL Transformations)。
    XSLT 是 XSL 中最重要的部分。
    XSLT 可将一种 XML 文档转换为另外一种 XML 文档。
    XSLT 使用 XPath 在 XML 文档中进行导航。
    XPath 是一个 W3C 标准。

    3) FOR XML AUTO 查询语句

    可以使用FOR XML AUTO子句修改SQL查询,使之返回XML。

    比如:

    image

    XML格式:

    image
    XML可以是来自于任何地方的数据源,例如Web服务、磁盘上的文件、从Web服务器返回的XML片段或数据库。SQL Server 2005以上版本内置了对XML数据类型的支持。而本文要做的就是从数据库中得到XML文件。

    准备:Northwind.mdf数据库一个,点击这里下载。

    首先,在VS下新建一个WebApplication,后台代码如下:

    protected void Page_Load(object sender, EventArgs e)
    {
    string connStr = @"Data Source=.\sqlexpress;database=Northwind.mdf;User Id=sa;pwd=123456";
    XmlDocument x
    = new XmlDocument();
    XPathNavigator xpathnav
    = x.CreateNavigator();

    using (SqlConnection conn = new SqlConnection(connStr))
    {
    conn.Open();
    string sqlStr = "select * from 客户 as Customer for XML AUTO, ELEMENTS";
    //for XML AUTO, ELEMENTS会提取出来文档中元素

    SqlCommand command
    = new SqlCommand(sqlStr, conn);

    using (XmlWriter xw = xpathnav.PrependChild())
    {
    xw.WriteStartElement(
    "Customer");
    using (XmlReader xr = command.ExecuteXmlReader())
    {
    xw.WriteNode(xr,
    true);
    }
    xw.WriteEndElement();
    }
    }

    Xml1.XPathNavigator
    = xpathnav;
    }

    然后,新建一个XSLT文件:customersToHtml.xslt
    image

    内容如下:

     1 <?xml version="1.0" encoding="utf-8"?>
    2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    3 xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    4 <xsl:output method="html"/>
    5 <xsl:template match="/">
    6 <h3>List of Customers</h3>
    7 <table border="1">
    8 <tr>
    9 <th>Company Name</th>
    10 <th>Contact Name</th>
    11 <th>Contact Title</th>
    12 </tr>
    13 <xsl:apply-templates select="//Customer"/>
    14 </table>
    15 </xsl:template>
    16 <xsl:template match="Customer">
    17 <tr>
    18 <td>
    19 <xsl:value-of select="公司名称"/>
    20 </td>
    21 <td>
    22 <xsl:value-of select="联系人姓名"/>
    23 </td>
    24 <td>
    25 <xsl:value-of select="联系人职务"/>
    26 </td>
    27 </tr>
    28 </xsl:template>
    29 </xsl:stylesheet>
    30 <!-- 樊勇 2011年9月3日20:51:05 –>

    在ASPX页面中需要添加一处改动的地方:

    image

    <asp:xml id="Xml1" runat="server" transformsource="~/customersToHtml.xslt"></asp:xml>

    运行ForXmlAuto.aspx页面,可以看到效果如图:

    image

  • 相关阅读:
    Android JNI开发摘录(二)之JNI数组处理
    基于HTTP协议的下载功能实现
    javascript中的事件冒泡和事件捕获
    JavaScript模仿块级作用域
    javascript表单的Ajax 提交插件的使用
    论学历与经验
    使用Palette抽取图片颜色
    通过脚本和EL表达式获取域中数据
    需求分析
    Tomcat简介
  • 原文地址:https://www.cnblogs.com/fanyong/p/2165912.html
Copyright © 2020-2023  润新知