由于项目的需要,最近学习了XLST和xml向html的转变。
XML文档的终极目标就是做为一个信息的基本类型来存储信息,载被转化为不同的格式来用于各种应用。W3C提出了扩展样式语言规范来实现上述的目的。
XSLT(the eXtensible Stylesheet Language
Transformation)既是用于XML文本的转化和格式化的标准语言。现面用一个简单的例子来说明XML文件是如何格式化后转化为和HTML的。
以下是XML文件的一部分。描述了数据库中的实体:
<?xml version="1.0" encoding="utf-8" ?
<Entities>
<Entity title="公司客户" name="Company" module="Users">
<Item title="名称" name="Name" type="text"/>
<Item title="编号" name="Number" type="text" property="get"/>
<Item title="经理" name="Manage" type="text"/>
<Item title="电话" name="Phone" type="text"/>
<Item title="联系人" name="Linkman" type="text"/>
<Item title="地址" name="Address" type="text"/>
<Item title="传真" name="Fax" type="text" require="false"/>
</Entity>
<Entity title="用户" name="User" module="Users">
<Item title="电子邮箱" name="Email" type="text"/>
<Item title="密码" name="Password" type="text"/>
<Item title="消费总额" name="TotalConsumption" type="int"/>
<Item title="真实姓名" name="Name" type="text" require="false"/>
<Item title="公司" name="Company" type="entity"
entityName="Company" require="false"/>
</Entity>
<Entity title="用户地址" name="UserAddress" module="Users">
<Item title="用户" name="User" type="entity" entityName="User"
/>
<Item title="地址" name="Address" type="text" />
<Item title="电话" name="Phone" type="text"/>
<Item title="是否是默认" name="IsDefault" type="bool" />
</Entity>
</Entities>
我现在想做的就是将xml文件转化为表格的形式,是实体及属性能过比较直观的表现出来。下面是对应这个XML文件的XLST:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform
"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl"
>
<xsl:template match="/">
<html>
<body>
<h2 align="center">
短途餐饮物流平台实体数据分析<br />
</h2>
<xsl:apply-templates
select="Entities/Entity"/>//对Entity节点应用模板
</body>
</html>
</xsl:template>
//Entity节点所对应的模板
<xsl:template match="Entity ">
<b>
<font color="bisgue">
<xsl:value-of select="@title"/>(<xsl:value-of
select="@name"/>)数据分析:
</font>
<br />
</b>
<table width="70%" bordercolor="black"
border="1">
<tr align="center" style="background-color:White;">
<th width="20%" >数据名称</th>
<th width="20%">代码</th>
<th width="20%">类型</th>
<th width="20%">是否可以为空</th>
<th>描述</th>
</tr>
<xsl:for-each
select="Item">//对节点的批量处理,他与元素xsl:apply-templates是两种不同的方法但输出的结果是想通的。
<tr align="center">
<td>
<xsl:value-of select="@title"/>
</td>
<td>
<xsl:value-of select="@name"/>
</td>
<td>
<xsl:value-of select="@type"/>
</td>
<td>
<xsl:apply-templates select="@require"/>
<xsl:if
test="not(@require)">//判断是否存在某个节点,用函数not(欲判断的节点)
否
</xsl:if>
</td>
<td>
<xsl:value-of select="(@description)"/>
<xsl:if test="not(@description)">
null
</xsl:if>
</td>
</tr>
</xsl:for-each>
</table>
<br />
</xsl:template>
<xsl:template match="@require">
是
</xsl:template>
</xsl:stylesheet>
以下是XML文件在应用到xlst后输出的格式
公司客户(Company)数据分析:
数据名称
代码
类型
是否可以为空
描述
名称 |
Name |
text |
否 |
null |
编号 |
Number |
text |
否 |
null |
经理 |
Manage |
text |
否 |
null |
电话 |
Phone |
text |
否 |
null |
联系人 |
Linkman |
text |
否 |
null |
地址 |
Address |
text |
否 |
null |
传真 |
Fax |
text |
是 |
null |
用户(User)数据分析:
数据名称
代码
类型
是否可以为空
描述
电子邮箱 |
Email |
text |
否 |
null |
密码 |
Password |
text |
否 |
null |
消费总额 |
TotalConsumption |
int |
否 |
null |
真实姓名 |
Name |
text |
是 |
null |
公司 |
Company |
entity |
是 |
null |
用户地址(UserAddress)数据分析:
数据名称
代码
类型
是否可以为空
描述
用户 |
User |
entity |
否 |
null |
地址 |
Address |
text |
否 |
null |
电话 |
Phone |
text |
否 |
null |
是否是默认 |
IsDefault |
bool |
否 |
null |
下面代码将XML文件转化为和HTML文件:
/// <summary>
///将xml转化为html
/// </summary>
/// <param name="XmlPath">xml文件路径</param>
/// <param name="XslFilePath">xslt文件路径</param>
/// <param name="htmlFilePath">声称的html文件路径</param>
public static void XmlTransToHtml(string xmlPath, string
xslFilePath, string htmlFilePath)
{
//生成Html文件路径
string HtmlFilePath = htmlFilePath;
XPathDocument myXPathDoc = new XPathDocument(xmlPath);
XslCompiledTransform myXslTrans = new
XslCompiledTransform();
//加载XSL文件
myXslTrans.Load(xslFilePath);
XmlTextWriter myWriter = new XmlTextWriter(HtmlFilePath,
System.Text.Encoding.Default);
myXslTrans.Transform(myXPathDoc, null, myWriter);
myWriter.Close();
}
分享到:
相关推荐
而`XmlFormat_1.0`可能是一个XML格式化工具的早期版本,同样具备基本的XML格式化和解析功能。 掌握JSON和XML的格式化工具对于开发者来说至关重要,因为它们能够帮助快速定位问题、调试代码和理解复杂的数据结构。在...
XML格式化工具通常会缩进元素,添加换行符,并按照规范对关闭标签进行对齐,提高代码可读性。 JSON,作为轻量级的数据交换格式,通常用于Web服务和客户端之间的数据传递。虽然它的语法简洁,但未格式化的JSON字符串...
本资源提供的是一个名为"Xml_Json_Html美化格式化工具_V4.2"的源码纯净版,主要功能是将这三种格式的数据进行美化和格式化,以便于开发者更清晰地查看和理解数据结构。 XML(Extensible Markup Language)是一种可...
XML格式化工具的主要任务是将原始的、不带缩进的XML数据转换为易于阅读的格式,通过添加缩进和换行来提高可读性。在实现XML的格式化过程中,会涉及到DOM(Document Object Model)解析和XMLWriter类,DOM用于加载XML...
XSL(Extensible Stylesheet Language)是一种基于 XML 的样式表语言,用于对 XML 文件进行变换和格式化。它的主要特点是可以根据 XML 文件的结构和内容,生成不同的输出文件,例如 HTML、TXT、PDF 等。 实验目的和...
同时,将Json字符串转换为XML,可以满足那些需要XML格式数据的系统的需求。 3. **HTML(Hypertext Markup Language)**:HTML是网页内容的基础,用于描述网页的结构。原始HTML源码可能因缺少缩进和换行而显得混乱,...
然而,面对大量字符串数据时,手动将其转化为XML格式是一项耗时且繁琐的任务。为了解决这一问题,我们引入了一款高效的工具——XmlNotepad v2.5,它能快速将大数据量的字符串转换成XML格式,大大提升了工作效率。 ...
Java Swing GUI桌面应用工具,集成...1、格式化:JSON、XML、HTML 2、Unix时间戳,获取最新时间,Unix时间戳转化为通用时间字符串格式 3、字符串长度计算 4、Url编码 解码 5、Base64 加密 解密 6、Unicode 编码 解码
XML格式化工具可以帮助开发者将混乱的XML代码整理成标准格式,通过缩进和换行来清晰地展现层次结构,便于阅读和调试。 JSON则是一种轻量级的数据交换格式,它基于JavaScript的一个子集。JSON格式简洁且易于人阅读和...
在"xmlstarlet 1.0.1 xml格式化工具"中,主要功能包括: 1. **XML格式化**:`xmlstarlet fmt`命令可以将杂乱无章的XML代码整理成标准格式,提高代码可读性。它会按照一定的规则对XML文档进行缩进和换行,使得结构...
《Xml_Json_Html美化格式化工具_树型显示_V4.2》是一款专为开发者设计的实用软件,主要用于XML、JSON和HTML等数据格式的美化和格式化。这款工具的V4.2版本增加了对树型显示的支持,使得用户能够更加直观地查看和理解...
XML格式化工具的主要功能是将原始的、未格式化的XML数据整理成层次分明、缩进整齐的形式,便于阅读和调试。源代码可能包含解析XML文档、检测并应用缩进规则以及生成美化输出的功能。 JSON则是一种轻量级的数据交换...
JTidy是一款开源的Java库,专门用于清理和格式化HTML文档,同时也支持将HTML转换为XML格式。这个工具对于处理不规范或者混乱的HTML代码尤其有用,它可以帮助开发者将不规则的HTML源码整理成符合W3C标准的XML文档,...
在.NET环境中,将XML数据转换为PDF文档是一项常见的任务,特别是在报表生成、文档自动化或数据呈现的场景下。本文将详细介绍如何使用C#语言来实现这个功能,主要涉及的知识点包括XML解析、PDF生成以及两者之间的转换...
总结,XML到HTML的转换是数据处理中的常见需求,通过XSLT、JavaScript库或DOM操作等方法,我们可以将结构化的XML数据转化为适合网页展示的HTML格式。了解这两种语言的特点和转换机制,对于Web开发人员来说是至关重要...
`XmlTextWriter`则用于生成格式化的XML文档,通过设置`Formatting`属性为`Indent`,可以使输出的XML文档具有良好的可读性。 3. **XML文档对象模型(DOM)的运用**:在转换过程中,`XmlDocument`类被用来加载经过...
保持XML文档的整洁格式对于理解和维护代码至关重要,因此,XML格式化工具显得尤为重要。 xmlstarlet是一款命令行工具,用于XML文档的操作,包括查询、验证、转换等。它支持XPath和XSLT,可以方便地对XML进行各种...
在标题中提到的"将html转换为XML的控件",就是指HtmlAgilityPack的核心功能之一。 在描述中提到了"中文乱码的问题",这在处理HTML时是一个常见的挑战。HtmlAgilityPack提供了解决这个问题的功能。它支持识别和处理...
XML Tools是一款专为Notepad++设计的XML处理插件,它提供了许多XML相关的实用功能,如格式化、验证、XPath查询、XSLT转换等。在处理XML文档时,良好的格式化至关重要,因为XML的结构清晰度直接影响到代码的可读性和...
1. **Tidy类库**:Tidy 是一个开源的HTML/XML转换工具,它可以用来清理和转换HTML文档,使其更接近XML格式。Tidy支持多种输入和输出格式,并且可以通过设置参数来定制转换行为。 #### 三、代码分析 1. **文件读写...