【简单示例:数据库表转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。
比如:
XML格式:
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;}
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
内容如下:
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页面中需要添加一处改动的地方:
<asp:xml id="Xml1" runat="server" transformsource="~/customersToHtml.xslt"></asp:xml>
运行ForXmlAuto.aspx页面,可以看到效果如图:
转载于:https://www.cnblogs.com/fanyong/archive/2011/09/03/2165912.html
【简单示例:数据库表转XML】相关推荐
- excel xml mysql_数据库表转换为xml格式,excel转换为xml格式文件
c#把sql数据库表转换为xml文件 1.连接sql数据库 public bool Open() { try { if (sqlconn == null) { sqlconn = new SqlCon ...
- 【实用】HTML的简单示例(表单篇)
效果如下: 代码内容: <html><head><title>增加管理员</title><meta charset="utf-8&quo ...
- 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (上) 试读版
ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍 ABAP 标准培训教程 BC400 学习笔记之二:Cross-client 和 Clien ...
- 如何创建最简单的 ABAP 数据库表,以及编码从数据库表中读取数据 (上)
假设我的需求是,在 ABAP 系统里,创建两个数据库表,如下图 Excel 所示. 黄色表的名称为 ZPERSON, 维护的是人的 ID 和名称. 绿色表的名称为 ZMYORDER, 维护的信息是订单 ...
- Caffeine Cache 简单示例
Caffeine Cache 简单示例 如下 POM依赖 <?xml version="1.0" encoding="UTF-8"?> <pr ...
- 【MySQL】创建数据库表
一.认识数据库表 表(Table)是数据库中数据存储最常见和最简单的一种形式,数据库可以将复杂的数据结构用较为简单的二维表来表示.二维表是由行和列组成的,分别都包含着数据,如表所示. 每个表都是由若干 ...
- ShardingSphere-Proxy 分库分表 简单示例
ShardingSphere-Proxy 分库分表 简单示例 简要说明 对一张简单的订单表数据表进行水平分库分表,拆分2个库,每个库16张表并在新结构在演示常见的增删改查操作 环境配置 设置M ...
- java读取ACCESS数据库的简单示例
java读取ACCESS数据库的简单示例 虽然简单,对初学者来说,如果没有一段可以成功执行的代码供参考,还真难调试 先用ACCESS建一个数据库 DB1.MDB,里面有一表"table1 ...
- mysql表变量临时表_sql server 临时表详细讲解及简单示例
一.概述 在sql server里临时表存储在TempDB库中,TempDB是一个系统数据库,它只有Simple恢复模式,也是最小日志记录操作.主要用于存放局部临时表,全局临时表,表变量,都是基于临时 ...
- php 登陆 sql语句,PHP 连接MySQL数据库的SQL语句的简单示例
这篇文章主要为大家详细介绍了PHP 连接MySQL数据库的SQL语句的简单示例,具有一定的参考价值,可以用来参考一下. 首先用phpmyadmin进入建立数据库user 再建个三段的表admin 再别 ...
最新文章
- Leangoo团队敏捷开发实现过程
- 开源人工智能算法一种新颖的超像素采样网络深层特征来估计任务特定的超像素
- 国内自动驾驶公司争先入局Robotaxi
- 自己收集的一些技术blog-javascript
- 帕金森患者的新曙光!AI无线智能探测系统诞生
- HDOJ_2010_大二写_水仙花数
- 企业运维之域控篇(九)--辅助域强制占用后的操作--清除数据
- Java之Character类
- linux改英语环境,CentOS6.8中/英文环境切换教程图解
- zhlan--Python中常见的几种格式化输出
- Make things beautiful again !
- PHPExcel 导出带生成图片完美案例
- VM9.0链接+汉化包+序列号
- 架构案例丨苏宁易购:商品详情系统架构设计
- 解决 npm i 时出现npm ERRcode EINTEGRITY npm ERR sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+I
- linux安装xbox无线手柄,想不到xbox手柄配对方法居然还有3个【详解】
- yigo基础学习笔记4_业务流程
- Codeforces Round #554 (Div. 2) A. Neko Finds Grapes
- fna服务器未响应,服务器端口说明
- 前端初学阶段总结与笔记
热门文章
- 一种便携式导弹飞控系统外场实时仿真测试系统设计
- Spring技术发展及框架设计
- java-net-php-python-java《Linux基础及技术》课程网站演示录像修改计算机毕业设计程序
- PS 考试案例 01笔记
- vue项目的停止_Terminal怎么停止VUE项目
- 165个站长在线工具箱网站源码/野兔在线工具系统V2.2.7中文版
- 服务器e5v2v3性能差距,服务器CPU中的E3、E5的区别,及V2、V3、V5的区别
- 正则表达式最好的书籍_正则表达式的最佳做法
- tabbar角标 小程序_小程序tabbar实现底部tab导航栏
- 常用的接口测试工具有哪些?