惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
博客园 - 聂微东
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
小众软件
小众软件
The GitHub Blog
The GitHub Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
B
Blog
H
Help Net Security
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
月光博客
月光博客
博客园 - 司徒正美

博客园 - erik168

C#事件的定义与触发[查找] join语法 DataAdpater的Fill研究 关于event的浏览器兼容问题-from佛 - erik168 - 博客园 表驱动法 幻方算法 2个JS细节 DOM模型设置属性细节 - erik168 - 博客园 js的Hashtable类(转) - erik168 - 博客园 几个关于javascript的细节 .net的同步 .net线程基础知识 C#开发ActiveX控件 从数据库中查询所有表及所有字段的SQL语句(转) 保存javascript运行状态 解决IE访问域外信息警告对话框弹出 创建XmlHttpRequest - erik168 - 博客园 vi概况 [资料查找结果]一些SHELL要知道的东西 - erik168 - 博客园
javascript实现xslt转换xml - erik168 - 博客园
erik168 · 2006-11-17 · via 博客园 - erik168

xml:
<?xml version="1.0" encoding="gb2312"?>
<items>
    <item id="1">one</item>
    <item id="2">two</item>
    <item id="3">three</item>
</items>

xsl:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
        <table cellspacing="1" bgcolor="#aaaaaa">
            <xsl:apply-templates select="items"/>
        </table>
    </xsl:template>
    <xsl:template match="items">
        <xsl:for-each select="item">
            <tr><td bgcolor="#eeeeee"><xsl:value-of select="./@id"/></td><td bgcolor="#eeeeee"><xsl:value-of select="."/></td></tr>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

IE下的转换:
<html>
<head>
<script>
var xmlDom=new ActiveXObject("MSXML2.DOMDocument");
function window.onload(){
    xmlDom.async="false";
    xmlDom.onreadystatechange=transformXml;
    xmlDom.load("test.xml");
}
function transformXml(){
    if (xmlDom.readyState != 4) return;
   
    var xslDom=new ActiveXObject("MSXML2.DOMDocument");
    xslDom.async="false";
    xslDom.load("test.xsl");
    document.getElementById("test").innerHTML=xmlDom.transformNode(xslDom);
}
</script>
</head>
<body>
<div id="test"></div>
</body>
</html>

Firefox下:
<html>
<head>
<script>
var xmlDom=new XMLHttpRequest();
var xslDom=new XMLHttpRequest();
var xslTrans = new XSLTProcessor();
window.onload=function(){
    xmlDom.open("GET","test.xml",false);   
    xmlDom.send(null);
    var coDoc=xmlDom.responseXML;
    xslDom.open("GET", "xsl.xml",false);
    xslDom.send(null)
    var mydoc=xslDom.responseXML;
    xslTrans.importStylesheet(mydoc);
    var frag=xslTrans.transformToFragment(coDoc,document);
    document.getElementById("test").appendChild(frag);
}
</script>
</head>
<body>
<div id="test"></div>
</body>
</html>