一个小型cms标签解析方法

许多时候需要用到标签解析:

String templeHtml = "<ul>{Tag:type=体育&pagesize=5}</ul><ul>{Tag:type=娱乐&pagesize=5}</ul>";
        String htmlCode = "";
        String beginTag = "{Tag:";
        String endTag = "}";
        boolean isFind = false;
        int myPos = 0;
        int myPosE = 0;
        int  StartPos = 0;            //'在循环中记录当前已经处理到的位置
        String tagName = "";
        
        while (!isFind) {
            myPos = templeHtml.indexOf(beginTag,StartPos);
            if (myPos ==-1 ) {                            
                htmlCode += templeHtml.substring(StartPos);                
                isFind = true;    
            } else {
                //如果找到了标记起点
                //先将这个标记起点和上一个标记终点之间的代码保存到HtmlCode                
                htmlCode += templeHtml.substring(StartPos,myPos);               
                myPosE = templeHtml.indexOf(endTag,myPos); 
                tagName = templeHtml.substring(myPos+5, myPosE);
               // tagName = templeHtml.substring(myPos, myPosE+1);
                String[] arrayTagName = tagName.split("&");
                String context = "";
                for (int i = 0; i < arrayTagName.length;i++) {
                	String[] arrayArgs = arrayTagName[i].split("=");
                	String argsName = arrayArgs[0];  //参数名称
                	String argsValue = arrayArgs[1]; //参数值
                	if (argsName.equals("type")) {
                		if (argsValue.equals("体育"))
                			context = "<li>李宁冠军</li>";
                		else
                			context = "<li>刘德华演唱会</li>";
                		
                	}
                	if (argsName.equals("pagesize")) {
                		for ( int k = 0; k < Integer.valueOf(argsValue); k++) {
                			 htmlCode += context;
                		}
                	} 
                }               
               
                String ss = templeHtml.substring(myPosE);                              
                StartPos = (myPosE+1); 
            }
           System.out.println("---------->"+htmlCode);
        }
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值