1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <? xmlversion = "1.0" encoding = "utf-8" ?> < root > < user > < account >John</ account > < name >王小明</ name > </ user > < user > < account >Mary</ account > < name >吳阿美</ name > </ user > < user > < account >David</ account > < name >徐丁丁</ name > </ user > </ root > |
userHtml.xslt 的內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <? xmlversion = "1.0" encoding = "utf-8" ?> < xsl:stylesheet version = "1.0" xmlns:msxsl = "urn:schemas-microsoft-com:xslt" exclude-result-prefixes = "msxsl" > < xsl:output method = "html" indent = "no" /> < xsl:template match = "/root" > < table border = "1" > < tr style = "background-color:#FFC125" > < td >帳號</ td > < td >姓名</ td > </ tr > < xsl:for-each select = "user" > < tr > < td > < xsl:value-of select = "account" /> </ td > < td > < xsl:value-of select = "name" /> </ td > </ tr > </ xsl:for-each > </ table > </ xsl:template > </ xsl:stylesheet > |
因為是輸出 html 的格式, 所以設定 <xsl:output method="html" indent="no"/> 的 method 為 html; indent 設定 no, 表示不要輸出編排的格式.
- 在 ASP.Net 中, 可以在 aspx 檔中加入 Xml 控制項: 此做法只要寫好 xml 與 xslt 檔就可自動進行轉換.12
<
asp:Xml
ID
=
"Xml1"
runat
=
"server"
DocumentSource
=
"users.xml"
TransformSource
=
"userHtml.xslt"
></
asp:Xml
>
- 如果 xml 檔案或 xslt 檔案並不在網站的目錄下, 可以用這個方式 :
Step1. 在網頁中加入一個 Literal 控制項, 例如:Step2. 在程式中撰寫 xml 與 xslt 檔的轉換, 如下:1<
asp:Literal
ID
=
"Literal1"
runat
=
"server"
></
asp:Literal
>
12345678910111213141516protected
void
Page_Load(
object
sender, EventArgs e)
{
XmlDocument doc =
new
XmlDocument();
doc.Load(
"c:\\users.xml"
);
XPathNavigator nav = doc.CreateNavigator();
XslCompiledTransform trans =
new
XslCompiledTransform(
false
);
trans.Load(
"c:\\userHtml.xslt"
);
using
(StringWriter sw =
new
StringWriter())
{
using
(XmlTextWriter xmlWriter =
new
XmlTextWriter(sw))
{
trans.Transform(nav,
null
, xmlWriter);
Literal1.Text = sw.ToString();
}
}
}
- 有關 xslt 的說明, 可參考 w3schools 網站.
沒有留言:
張貼留言