Javascript轻松实现调用xslt解析xml
2012-06-19 10:51
393 查看
XML代码如下,
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
<title>C-Sharpcorner Latest Articles</title>
<link>http://www.c-sharpcorner.com/</link>
<description>Watch articles from C# Corner</description>
<copyright>© 1999 - 2011 Mindcracker LLC. All Rights Reserved</copyright>
<item>
<title>Joins Using LINQ in C#</title>
<description>Today, in this article we will see how to perform join operation using LINQ queries. I have created two tables in database named 'Candidate'. The first table name is Employee. the second table name is Student. I have used LINQ to SQL to
communicate with database. </description>
<link>http://www.c-sharpcorner.com/UploadFile/54db21/joins-using-linq-in-C-Sharp/</link>
<pubDate>12/13/2011 3:08:33 AM</pubDate>
<author>Vijay Prativadi</author>
</item>
<item>
<title>Simple Arithmetic Operation using WCF Service Hosted on WebApp</title>
<description>Today, in this article we will try to perform simple arithmetic operation importing some created service into our web application. Once the application is fully developed we can request values from our web form which retrieve the output by
performing an expected operation to the values specified by the service. </description>
<link>http://www.c-sharpcorner.com/UploadFile/54db21/simple-arithmetic-operation-using-wcf-service-hosted-on-weba/</link>
<pubDate>12/13/2011 2:41:30 AM</pubDate>
<author>Vijay Prativadi</author>
</item>
<item>
<title>Print in C#</title>
<description>Here is a good list of resource related to printing in C# using GDI+.</description>
<link>http://www.c-sharpcorner.com/UploadFile/mahesh/print-in-C-Sharp/</link>
<pubDate>12/12/2011 3:19:54 PM</pubDate>
<author>Mahesh Chand</author>
</item>
</channel>
</rss>
XSL代码如下,
<?xml version="1.0" encoding="iso-8859-1"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<body style="font-family:Arial,helvetica,sans-serif;font-size:12pt;
background-color:#EEEEEE">
<xsl:for-each select="rss/channel/item">
<tr style="color:#0080FF;">
<td style="text-align:left;font-weight:bold;">
<xsl:value-of select ="title"></xsl:value-of>
</td>
<td style="text-align:right;font-weight:bold;">
<i>
<xsl:value-of select ="author"></xsl:value-of>
</i>, <xsl:value-of select="pubDate"/>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:left;padding-top:10px;">
<xsl:value-of select="description"/>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:right;">
<a href="{link}" rel="bookmark">
More...
</a>
</td>
</tr>
<tr>
<td colspan="2" style="height:20px;">
<hr></hr>
</td>
</tr>
</xsl:for-each>
</body>
</html>
JS代码如下,
<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.ActiveXObject)
{
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xhttp = new XMLHttpRequest();
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
function displayResult()
{
xml=loadXMLDoc("a1.xml");
xsl=loadXMLDoc("b.xsl");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("example").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("example").appendChild(resultDocument);
}
}
window.onload = function()
{
displayResult();
}
</script>
</head>
<body>
<div id="example" />
</body>
</html>
结果如下,
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
<title>C-Sharpcorner Latest Articles</title>
<link>http://www.c-sharpcorner.com/</link>
<description>Watch articles from C# Corner</description>
<copyright>© 1999 - 2011 Mindcracker LLC. All Rights Reserved</copyright>
<item>
<title>Joins Using LINQ in C#</title>
<description>Today, in this article we will see how to perform join operation using LINQ queries. I have created two tables in database named 'Candidate'. The first table name is Employee. the second table name is Student. I have used LINQ to SQL to
communicate with database. </description>
<link>http://www.c-sharpcorner.com/UploadFile/54db21/joins-using-linq-in-C-Sharp/</link>
<pubDate>12/13/2011 3:08:33 AM</pubDate>
<author>Vijay Prativadi</author>
</item>
<item>
<title>Simple Arithmetic Operation using WCF Service Hosted on WebApp</title>
<description>Today, in this article we will try to perform simple arithmetic operation importing some created service into our web application. Once the application is fully developed we can request values from our web form which retrieve the output by
performing an expected operation to the values specified by the service. </description>
<link>http://www.c-sharpcorner.com/UploadFile/54db21/simple-arithmetic-operation-using-wcf-service-hosted-on-weba/</link>
<pubDate>12/13/2011 2:41:30 AM</pubDate>
<author>Vijay Prativadi</author>
</item>
<item>
<title>Print in C#</title>
<description>Here is a good list of resource related to printing in C# using GDI+.</description>
<link>http://www.c-sharpcorner.com/UploadFile/mahesh/print-in-C-Sharp/</link>
<pubDate>12/12/2011 3:19:54 PM</pubDate>
<author>Mahesh Chand</author>
</item>
</channel>
</rss>
XSL代码如下,
<?xml version="1.0" encoding="iso-8859-1"?>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<body style="font-family:Arial,helvetica,sans-serif;font-size:12pt;
background-color:#EEEEEE">
<xsl:for-each select="rss/channel/item">
<tr style="color:#0080FF;">
<td style="text-align:left;font-weight:bold;">
<xsl:value-of select ="title"></xsl:value-of>
</td>
<td style="text-align:right;font-weight:bold;">
<i>
<xsl:value-of select ="author"></xsl:value-of>
</i>, <xsl:value-of select="pubDate"/>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:left;padding-top:10px;">
<xsl:value-of select="description"/>
</td>
</tr>
<tr>
<td colspan="2" style="text-align:right;">
<a href="{link}" rel="bookmark">
More...
</a>
</td>
</tr>
<tr>
<td colspan="2" style="height:20px;">
<hr></hr>
</td>
</tr>
</xsl:for-each>
</body>
</html>
JS代码如下,
<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.ActiveXObject)
{
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xhttp = new XMLHttpRequest();
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
function displayResult()
{
xml=loadXMLDoc("a1.xml");
xsl=loadXMLDoc("b.xsl");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("example").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("example").appendChild(resultDocument);
}
}
window.onload = function()
{
displayResult();
}
</script>
</head>
<body>
<div id="example" />
</body>
</html>
结果如下,
相关文章推荐
- javascript轻松实现调用xslt解析xml
- javascript异步调用XML进行解析的简单实现
- JavaScript调用xslt转化xml实现多浏览器支持
- JavaScript解析XML实现两级级联下拉列表
- JavaScript解析XML实现省市县三级联动
- Oracle中通过:触发器,存储过程,Function调用实现解析Clob字段类型中存储的xml字符串
- Oracle中通过Function,存储过程,触发器,调用实现解析Clob字段中存在的xml字符串
- 轻松实现Android 更换皮肤(主题) - 资源打包为apk,使用AssetManager动态解析调用
- 在Servlet应用中用XML实现数据包装和用XSLT解析数据
- 使用javascript解析xml实现省市县三级联动
- 原生javascript实现解析XML文档与字符串
- 原生javascript实现解析XML文档与字符串
- JavaScript解析XML实现两级级联下拉列表
- javascript加载xml 并解析各节点的值(实现方法)
- java解析javascript方法,scriptengine初体验,实现后台调用js方法验证。
- 8、使用Struts2实现异步调用机制剖析(XML与JSON方式解析)
- JavaScript解析XML实现两级级联下拉列表
- Javascript + Xslt 解析Xml为Html的方法
- 用xslt+xml+javascript+css实现的菜单
- javascript解析xml实现省市县三级联动的方法