• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

VS+javascrip编程中对xslxml以及树的编写

时间:2015年04月02日 15:25:55    来源:魔法猪系统重装大师官网    人气:14214

来公司这么长时间一直到现在一直在iaas项目中辗转。

利用xml的特性将数据独立出,达到UI和Db真正的分离。

1 了解知识:

1.xsl是xml的格式文件, xml是数据文件

2 调试方法:

  1)在xsl内容中嵌套javascript从而简介调试查看xsl的中间结果,通过查看xsl+xml形成的结果htm

  2)vs自带了一个功能强大的调试器,专门针对此用法如下:(不懂可以问msdn)

namespace 调试
{
    class Program
    {
        static void Main(string[] args)
        {

            XslCompiledTransform xslt = new XslCompiledTransform(true);//true 开启调试
            // load the style sheet.
            xslt.Load("demo.xsl");

            xslt.Transform("demo.xml", "demo.htm");
            Console.Read();
        }
    }
}

适当加断点,可跳进xsl中的循环调试,也可以变量监视。很好用。

2 Javascript结合xsl xml

 xsl和xml你都有了, 如何将格式套用入数据?

1 跨域加载xml

此时,倘若你想要的xml涉及跨域问题,那么在输出xml的服务器上必须加Header。Access-Control-Allow-Origin: * !(因为此问题困然我两天)你才能访问到该xml,否则firfox下无法读取。因为ie下,设置interne选项中参数便可以访问!具体问google或者私密我。

 加载文件如下:

//读取本地数据
function xmlGetResponse(_url) {
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET", _url, false);
    xmlhttp.send();
    return xmlhttp.responseXML;
//如果responseXML内无数据 可查看responeText核查
}

其中如果responseXML.xml='' &&responseText不为空。可将responseText转化为dom,返回是结果一样的。

 if (!xhttp.responseXML.xml) {
        //转化为dom
        try {
            if (window.ActiveXObject) {
                var xmlobject = new ActiveXObject("Microsoft.XMLDOM");
                xmlobject.async = "false";
                xmlobject.loadXML(xhttp.responseText);
                return xmlobject;
            }
            else {//firfox下特殊
                var parser = new DOMParser();
                var xmlobject = parser.parseFromString(xhttp.responseText, "text/xml");
                return xmlobject;
            }

        } catch (e) {
        }

2 加载xsl

加载方式同加载xml一样,xsl也是标签语言哦,成双成对的。

2 二者结合

用代码说话:

function xmlGetResponse(_urlxml, _urlxsl) {
    var xml = loadXMLDoc(_urlxml);//加载xml
    var xsl = loadXMLDoc( _urlxsl);//加载xsl
    if (window.ActiveXObject) { //ie
        ex = xml.transformNode(xsl);//结合,结果ex是形成的htm
    }
    else if (document.implementation && document.implementation.createDocument) {
 //其他浏览器如firfox
        xsltProcessor = new XSLTProcessor();
        xsltProcessor.importStylesheet(xsl);
        resultDocument = xsltProcessor.transformToFragment(xml, document);
        document.getElementById(id).appendChild(resultDocument);
//结合,结果resultDocument是形成的htm
    }
}

3 xml+xsl ->tree!形成树

主要的xsl逻辑代码我会共享给大家,也算是我这两天的埋头研究没有浪费。

 1)主要思路

  a.找到根节点,便利其子节点,其中读取属性等等你需要的值,并输出(根据要求可以加上js效果)

  b.递归循环找出所有子节点并展现出树的层次

  c.我认为最难的点:输出树节点 前方的虚线。不知能否理解。如果你有用到,你就知道

 2)主要难点

 a.模块的调用和传参! 形成递归(不用递归当然更好)

 b.计数 当前节点的父节点,父节点的兄弟节点,父节点的子节点中在本节点之后兄弟节点。。。。等等 

   最好慢慢研究http://www.w3school.com.cn/xpath/和http://www.w3school.com.cn/xsl/ 

   说的简洁但是意义很大。慢慢理解。

 c.递归输出前方虚线图片。

由于时间限制,讲的比较笼统。见谅

下载地址

VS+javascrip,编程,中,对,xslxml,以及,
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部