您的位置:首页 > Web前端 > JavaScript

JavaScript调用xslt转化xml实现多浏览器支持

2009-04-15 19:16 706 查看
 

xsltTransfromXml.js

文件中的核心代码

var myFunction =
{
    //properties(数据库中取出的XML格式的字符串)
    //xsltPath(转化该xml的xslt的路径)
    //divPosition(该模块所要放入的div的ID);
    differentExplore: function(properties, xsltPath, divPosition) {
        if (document.implementation && document.implementation.createDocument) {
            try //Firefox, Mozilla, Opera, etc.
                {
                var parser = new DOMParser();
                var newsXml = parser.parseFromString(properties, "text/xml");
                newsXml.async = false;
                var newsXmlXsl = document.implementation.createDocument("", "", null);
                newsXmlXsl.async = false;
                newsXmlXsl.load(xsltPath); //加载XSLT文档
                var xsltProcessor = new XSLTProcessor();
                xsltProcessor.importStylesheet(newsXmlXsl);
                // transformToDocument方式
                var result = xsltProcessor.transformToDocument(newsXml);
                var xmls = new XMLSerializer();
                document.getElementById(divPosition).innerHTML = xmls.serializeToString(result);

            }
            catch (e) {
                alert(e.message);

            }

        }
        else if (typeof window.ActiveXObject != 'undefined') {
            try //for IE
            {
                var newsXml = new ActiveXObject("Microsoft.XMLDOM");
                var newsXmlXsl = new ActiveXObject("Microsoft.XMLDOM");
                newsXml.async = false;
                newsXmlXsl.async = false;
                newsXml.loadXML(properties);
                newsXmlXsl.load(xsltPath);
                var resultHtml = newsXml.transformNode(newsXmlXsl);
                document.getElementById(divPosition).innerHTML = resultHtml;
            }
            catch (e) {
                alert(e.message);
            }
        }

    }
}

html页面中的调用情况

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>
       <script language="javascript" type="text/javascript" src="Content/xsltTransfromXml.js" ></script>
</head>
<body onload="LoadXmlByNews()">
       <div id="left_imgAndtext" style="float:left;"></div>              
       <script language="javascript" type="text/javascript">
           function LoadXmlByNews() {
               var news = '<gxcy>'
                         + ' <news><QuestID>1</QuestID><QuestTitle>法律上点击菲拉斯</QuestTitle><QuestText>就分开了度减 肥了解放路上的将来时代了附件是独立就分开了速度减肥了圣诞节</QuestText><QuestTime>2009-03-15T14:21:42.700</QuestTime></news>'
                         + ' <news><QuestID>2</QuestID><QuestTitle>受到奖励方式大家了附件</QuestTitle><QuestText>为哟呵摇头师傅说多了好看附加圣诞快乐杰弗里斯点击法律手段就分开了速度减肥了圣诞节</QuestText><QuestTime>2009-03-15T14:21:42.733</QuestTime></news>'
                         + ' <news><QuestID>3</QuestID><QuestTitle>睡觉了附件数点</QuestTitle><QuestText>就分开了速度减肥了时间到了福建</QuestText><QuestTime>2009-03-15T14:21:42.733</QuestTime></news>'
                         + ' <news><QuestID>4</QuestID><QuestTitle>发生的减肥了</QuestTitle><QuestText>服饰代理就分开了速度减肥了</QuestText><QuestTime>2009-03-15T14:21:42.733</QuestTime></news>'
                         + ' <news><QuestID>5</QuestID><QuestTitle>内部为</QuestTitle><QuestText>速度快解放开了下次可厉害形成以偶发了你啰嗦能量上附件了圣诞快乐解放路口女里</QuestText><QuestTime>2009-03-15T14:21:42.733</QuestTime></news>'
                         + ' <news><QuestID>6</QuestID><QuestTitle>就覅哪个厉害</QuestTitle><QuestText>粮食店街分开来讲是的啦据福建历史的看见发快了速度就分开了速度减肥了就</QuestText><QuestTime>2009-03-15T14:21:42.733</QuestTime></news>'
                         + '</gxcy>';
               var xslt = 'xslt/orange_imgAndtext.xslt';
               var div = "left_imgAndtext";
               myFunction.differentExplore(news, xslt, div);

}
        </script>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐