许多时候需要用到标签解析:
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);
}
}