萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> xml轉化html的方法

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="

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();

}

在測試類中調用這個方法,

運行測試就會得到我們需要的html文件。

以上就是我們給大家介紹的xml轉化html了。希望大家繼續關注我們的網站!

copyright © 萬盛學電腦網 all rights reserved