`
lovebirdegg
  • 浏览: 175506 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

xml 格式化后转化为html

阅读更多

由于项目的需要,最近学习了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();
        }

分享到:
评论

相关推荐

    Json和Xml离线格式化工具

    而`XmlFormat_1.0`可能是一个XML格式化工具的早期版本,同样具备基本的XML格式化和解析功能。 掌握JSON和XML的格式化工具对于开发者来说至关重要,因为它们能够帮助快速定位问题、调试代码和理解复杂的数据结构。在...

    xml,json,html格式化工具

    XML格式化工具通常会缩进元素,添加换行符,并按照规范对关闭标签进行对齐,提高代码可读性。 JSON,作为轻量级的数据交换格式,通常用于Web服务和客户端之间的数据传递。虽然它的语法简洁,但未格式化的JSON字符串...

    Xml_Json_Html美化格式化工具_V4.2_源码_纯净版

    本资源提供的是一个名为"Xml_Json_Html美化格式化工具_V4.2"的源码纯净版,主要功能是将这三种格式的数据进行美化和格式化,以便于开发者更清晰地查看和理解数据结构。 XML(Extensible Markup Language)是一种可...

    Xml_Json_Html美化格式化工具_V3.0源码

    XML格式化工具的主要任务是将原始的、不带缩进的XML数据转换为易于阅读的格式,通过添加缩进和换行来提高可读性。在实现XML的格式化过程中,会涉及到DOM(Document Object Model)解析和XMLWriter类,DOM用于加载XML...

    xml的转化成html

    XSL(Extensible Stylesheet Language)是一种基于 XML 的样式表语言,用于对 XML 文件进行变换和格式化。它的主要特点是可以根据 XML 文件的结构和内容,生成不同的输出文件,例如 HTML、TXT、PDF 等。 实验目的和...

    Xml_Json_Html美化格式化工具_V3.0

    同时,将Json字符串转换为XML,可以满足那些需要XML格式数据的系统的需求。 3. **HTML(Hypertext Markup Language)**:HTML是网页内容的基础,用于描述网页的结构。原始HTML源码可能因缺少缩进和换行而显得混乱,...

    字符串转换成XML格式工具XmlNotepad-v2.5.rar

    然而,面对大量字符串数据时,手动将其转化为XML格式是一项耗时且繁琐的任务。为了解决这一问题,我们引入了一款高效的工具——XmlNotepad v2.5,它能快速将大数据量的字符串转换成XML格式,大大提升了工作效率。 ...

    字符串格式化工具JSON、XML、HTML,常用字符串格式转换工具与加密方式查看, Unix时间戳工具

    Java Swing GUI桌面应用工具,集成...1、格式化:JSON、XML、HTML 2、Unix时间戳,获取最新时间,Unix时间戳转化为通用时间字符串格式 3、字符串长度计算 4、Url编码 解码 5、Base64 加密 解密 6、Unicode 编码 解码

    xml,json,html,格式化工具

    XML格式化工具可以帮助开发者将混乱的XML代码整理成标准格式,通过缩进和换行来清晰地展现层次结构,便于阅读和调试。 JSON则是一种轻量级的数据交换格式,它基于JavaScript的一个子集。JSON格式简洁且易于人阅读和...

    xmlstarlet 1.0.1 xml格式化工具

    在"xmlstarlet 1.0.1 xml格式化工具"中,主要功能包括: 1. **XML格式化**:`xmlstarlet fmt`命令可以将杂乱无章的XML代码整理成标准格式,提高代码可读性。它会按照一定的规则对XML文档进行缩进和换行,使得结构...

    Xml_Json_Html美化格式化工具_树型显示_V4.2.rar

    《Xml_Json_Html美化格式化工具_树型显示_V4.2》是一款专为开发者设计的实用软件,主要用于XML、JSON和HTML等数据格式的美化和格式化。这款工具的V4.2版本增加了对树型显示的支持,使得用户能够更加直观地查看和理解...

    xml,json,html格式化工具 源代码

    XML格式化工具的主要功能是将原始的、未格式化的XML数据整理成层次分明、缩进整齐的形式,便于阅读和调试。源代码可能包含解析XML文档、检测并应用缩进规则以及生成美化输出的功能。 JSON则是一种轻量级的数据交换...

    JTidy配置手册,将Html页面转化为xml

    JTidy是一款开源的Java库,专门用于清理和格式化HTML文档,同时也支持将HTML转换为XML格式。这个工具对于处理不规范或者混乱的HTML代码尤其有用,它可以帮助开发者将不规则的HTML源码整理成符合W3C标准的XML文档,...

    将XML转化为pdf的demo

    在.NET环境中,将XML数据转换为PDF文档是一项常见的任务,特别是在报表生成、文档自动化或数据呈现的场景下。本文将详细介绍如何使用C#语言来实现这个功能,主要涉及的知识点包括XML解析、PDF生成以及两者之间的转换...

    xml转换html

    总结,XML到HTML的转换是数据处理中的常见需求,通过XSLT、JavaScript库或DOM操作等方法,我们可以将结构化的XML数据转化为适合网页展示的HTML格式。了解这两种语言的特点和转换机制,对于Web开发人员来说是至关重要...

    HTML转换为XML

    `XmlTextWriter`则用于生成格式化的XML文档,通过设置`Formatting`属性为`Indent`,可以使输出的XML文档具有良好的可读性。 3. **XML文档对象模型(DOM)的运用**:在转换过程中,`XmlDocument`类被用来加载经过...

    EditPlus格式化XML-之xmlstarlet

    保持XML文档的整洁格式对于理解和维护代码至关重要,因此,XML格式化工具显得尤为重要。 xmlstarlet是一款命令行工具,用于XML文档的操作,包括查询、验证、转换等。它支持XPath和XSLT,可以方便地对XML进行各种...

    将html转换为XML的控件HtmlAgilityPack

    在标题中提到的"将html转换为XML的控件",就是指HtmlAgilityPack的核心功能之一。 在描述中提到了"中文乱码的问题",这在处理HTML时是一个常见的挑战。HtmlAgilityPack提供了解决这个问题的功能。它支持识别和处理...

    notepad++ 对比插件 xml格式化插件

    XML Tools是一款专为Notepad++设计的XML处理插件,它提供了许多XML相关的实用功能,如格式化、验证、XPath查询、XSLT转换等。在处理XML文档时,良好的格式化至关重要,因为XML的结构清晰度直接影响到代码的可读性和...

    html转换xml代码

    1. **Tidy类库**:Tidy 是一个开源的HTML/XML转换工具,它可以用来清理和转换HTML文档,使其更接近XML格式。Tidy支持多种输入和输出格式,并且可以通过设置参数来定制转换行为。 #### 三、代码分析 1. **文件读写...

Global site tag (gtag.js) - Google Analytics