/*
* Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006.
*
* Licensed under the Aduna BSD-style license.
*/
public class Utils {
/**
* Resolves an entity reference or character reference to its value.
*
* @param entName The 'name' of the reference. This is the string between
* & and ;, e.g. amp, quot, #65 or #x41.
* @return The value of the supplied reference, or the reference itself
* if it could not be resolved.
*/
public static String resolveEntity(String entName) {
if (entName.startsWith("#")) {
// character reference
StringBuilder sb = new StringBuilder();
if (entName.charAt(1) == 'x') {
// Hex-notation
sb.append((char)Integer.parseInt(entName.substring(2), 16));
}
else {
// Dec-notation
sb.append((char)Integer.parseInt(entName.substring(1)));
}
return sb.toString();
}
else if (entName.equals("apos")) {
return "'";
}
else if (entName.equals("quot")) {
return "\"";
}
else if (entName.equals("gt")) {
return ">";
}
else if (entName.equals("lt")) {
return "<";
}
else if (entName.equals("amp")) {
return "&";
}
else {
return entName;
}
}
}
|