Chinaunix首页 | 论坛 | 博客
  • 博客访问: 375892
  • 博文数量: 284
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1707
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-14 16:38
文章分类

全部博文(284)

文章存档

2015年(6)

2014年(278)

我的朋友

分类: Html/Css

2014-08-26 16:17:50

依据HTML模板返回解析的XML 
依赖jQuery 1.4
1. [代码]基于Jquery的xml解析器并返回定制的HTML     
/**
 *  jQuery插件
 *  Author: purecolor@foxmail.com
 *  Date  : 2011-02-16
 *  Params: dom:XMLDocument ,
 *          _default:{
 *              reg:匹配标签正则,
 *              lc:标签左结束符,
 *              rc:标签右结束符,
 *              script:是否包含script,
 *              scriptID:包含script的节点,
 *              tplBox:模板,
 *              tplhtml:信息条目
 *          }
 *  Return: HTMLDocument
 *  Note  : XML处理插件
 *           
 */
(function($){
    $.fn.extend({
        parseXML:function(dom,option){
            var that=$(dom);
            var html={};
            var tpl='';
             
            //配置数据
            var _default={
                reg:/\{\w+\}/gi,
                lc:'{',
                rc:'}',
                script:true,
                scriptID:'script',
                tplBox:'
    {item}
{more}',
                tplhtml:{
                    item:'
  • {pubDate}{title}
  • ',
                        more:'',
                        script:'function {funcationname}{{funcationcode}}'
                    }

                }       
                var option=$.extend(_default,option);
                 
                //开始处理tplBody
                $.each(option.tplhtml,function(o,str){
                    var rego=str.match(option.reg);
                    html[o]=[];
                    $(o,that).each(function(){
                        var D=$(this),shtml=str;
                        $.each(rego,function(i,c){
                            shtml=shtml.replace(c,D.find(c.replace(option.lc,'').replace(option.rc,'')).text());
                        }); 
                        html[o].push(shtml);
                    });
                }); 
                 
                //开始处理tplBox
                var tplHtml=option.tplBox;
                tpl=option.tplBox.match(option.reg);
                $.each(tpl,function(i,c){
                    tplHtml=tplHtml.replace(c,html[c.replace(option.lc,'').replace(option.rc,'')].join(''));
                }); 
                 
                //向页面添加script
                if(option.script){          
                    var script=document.createElement('script');
                    script.type="text/javascript";
                    script.text=html[option.scriptID].join('');
                    $('html > head').append(script);
                }   
                 
                return tplHtml;
            }
        });
    })(jQuery);
    阅读(348) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~