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

推荐订阅源

S
Securelist
O
OpenAI News
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Google Online Security Blog
Google Online Security Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
N
News and Events Feed by Topic
S
Security Affairs
SecWiki News
SecWiki News
Project Zero
Project Zero
L
Lohrmann on Cybersecurity
P
Proofpoint News Feed
P
Palo Alto Networks Blog
L
LINUX DO - 最新话题
H
Hacker News: Front Page
Recent Commits to openclaw:main
Recent Commits to openclaw:main
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
W
WeLiveSecurity
T
The Exploit Database - CXSecurity.com
K
Kaspersky official blog
The GitHub Blog
The GitHub Blog
I
InfoQ
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
B
Blog
IT之家
IT之家
AWS News Blog
AWS News Blog
Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Spread Privacy
Spread Privacy
N
News and Events Feed by Topic
Security Latest
Security Latest
美团技术团队
C
Check Point Blog
WordPress大学
WordPress大学
T
Tenable Blog
S
Security @ Cisco Blogs
Last Week in AI
Last Week in AI
博客园 - 聂微东
月光博客
月光博客
博客园 - 【当耐特】
S
Schneier on Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Secure Thoughts
Schneier on Security
Schneier on Security
C
Cisco Blogs
Cyberwarzone
Cyberwarzone

博客园 - 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>