|
|||
---|---|---|---|
|
Example antinstall-config.xml
<%@page import="java.io.*" %><%@page import="java.util.*" %>
<%
String strJspDir = (String)application.getAttribute("myjasper.jsp.dir");
File fleJspDir = new File(strJspDir);
File exampleFile = new File(fleJspDir, "antinstall-config-example.xml");
BufferedReader br = new BufferedReader(new FileReader(exampleFile));
StringBuffer file = new StringBuffer();
String line = null;
while( (line = br.readLine()) != null ){
file.append(line).append('\n');
}
out.println(decorateXml(file));
%>
<%!
private String decorateXml(StringBuffer file){
boolean inString = false;
boolean inElement = false;
boolean inRef = false;
StringBuffer sb = new StringBuffer();
StringBuffer element = new StringBuffer();
StringBuffer reference = new StringBuffer();
int elemStart = -1;
for (int i = 0; i < file.length(); i++){
char c = file.charAt(i);
switch(c){
case '$' : {
if(file.charAt(i + 1) == '{'){
inRef = true;
sb.append("$");
}
else {
sb.append(c);
}
break;
}
case '}' : {
if(inRef){
inRef = false;
sb.append("}");
}
else {
sb.append(c);
}
break;
}
case '<' : {
inElement = true;
elemStart = i;
sb.append("<");
break;
}
case '>' : {
if(inElement){
sb.append(createLink(element.toString()));
element = new StringBuffer();
inElement = false;
}
sb.append(">");
break;
}
case ' ' : {
if(inElement){
sb.append(createLink(element.toString()));
element = new StringBuffer();
inElement = false;
}
sb.append(' ');
break;
}
case '\t' : {
if(inElement){
sb.append(createLink(element.toString()));
element = new StringBuffer();
inElement = false;
}
sb.append(" ");
break;
}
case '\"' : {
if(!inString) {
sb.append("\"");
}
else {
sb.append("\"");
}
inString = !inString;
break;
}
case '&' : {
sb.append("&");
break;
}
case '\n' : {
if(inElement) {
sb.append(createLink(element.toString()));
element = new StringBuffer();
inElement = false;
}
sb.append("
"); break; } default : { if(inElement) { element.append(c); } else { sb.append(c); } break; } } } return sb.toString(); } private String createLink(String element){ if(element.startsWith("/")) { return "" + element + ""; } if("?xml".equals(element.trim())){ return "" + element + ""; } if("!DOCTYPE".equals(element.trim())){ return "" + element + ""; } return "" + element.trim() + "" + element.substring(element.trim().length()); } %> |