论坛首页 入门技术论坛

Javascript XSLT 处理XML文件(IE and Firefox)

浏览 2996 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-05-24  

    javascript xslt 处理xml备忘录。支持firefox。
参考:
w3school XSLT - 客户端 http://www.w3school.com.cn/xsl/xsl_client.asp
如何使用Javascript XSLT 处理XML文件 http://java.chinaitlab.com/advance/533787.html

1.xml文件,cdcatalog.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
<catalog>
    
<cd>
        
<title>Empire Burlesque</title>
        
<artist>Bob Dylan</artist>
        
<country>USA</country>
        
<company>Columbia</company>
        
<price>10.90</price>
        
<year>1985</year>
    
</cd>
    
<cd>
        
<title>Hide your heart</title>
        
<artist>Bonnie Tyler</artist>
        
<country>UK</country>
        
<company>CBS Records</company>
        
<price>9.90</price>
        
<year>1988</year>
    
</cd>
</catalog>


2.xsl文件,cdcatalog.xsl

<!----><?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
<xsl:stylesheet version="1.0"
xmlns:xsl
="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='html' version='1.0' encoding='UTF-8' indent='yes'/>

<xsl:template match="/">
  
<html>
  
<body>
  
<h2>My CD Collection</h2>
    
<table border="1">
      
<tr bgcolor="#9acd32">
        
<th align="left">Title</th>
        
<th align="left">Artist</th>
      
</tr>
      
<xsl:for-each select="catalog/cd">
      
<tr>
        
<td><xsl:value-of select="title"/></td>
        
<td><xsl:value-of select="artist"/></td>
      
</tr>
      
</xsl:for-each>
    
</table>
  
</body>
  
</html>
</xsl:template>
</xsl:stylesheet>



3.html文件,index.html

<!----><html>
<body>

<script type="text/javascript">
var xml;
var xsl;
if(typeof window.ActiveXObject != 'undefined') {
    xml 
= new ActiveXObject("Microsoft.XMLDOM");
    xsl 
= new ActiveXObject("Microsoft.XMLDOM");
else if(document.implementation && document.implementation.createDocument) {    //mozilla
    xml = document.implementation.createDocument(""""null);
    xsl 
= document.implementation.createDocument(""""null);
}
// Load XML 

xml.async 
= false;
xml.load(
"cdcatalog.xml");

// Load XSL

xsl.async 
= false;
xsl.load(
"cdcatalog.xsl");

// Transform

if(typeof window.ActiveXObject != 'undefined') {
    document.write(xml.transformNode(xsl));
else if(document.implementation && document.implementation.createDocument) {    //mozilla
    var xsltProcessor = new XSLTProcessor();
    xsltProcessor.importStylesheet(xsl);
    
// transformToDocument方式
    var result = xsltProcessor.transformToDocument(xml);
    
var xmls = new XMLSerializer();
    document.write(xmls.serializeToString(result));
}

</script>

</body>
</html>


论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics