--- /dev/null
+package net.sourceforge.phpeclipse.xdebug.core;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+public class PHPDebugUtils {
+ public static String getAttributeValue (Node CurrentNode, String AttributeName) {
+ String strValue = "";
+ if (CurrentNode.hasAttributes()) {
+ NamedNodeMap listAttribute = CurrentNode.getAttributes();
+ Node attribute = listAttribute.getNamedItem(AttributeName);
+ if (attribute !=null)
+ strValue = attribute.getNodeValue();
+ }
+ return strValue;
+ }
+
+ public static String escapeString(String string) {
+ StringBuffer escString=new StringBuffer();
+ Pattern pattern = Pattern.compile("[a-zA-Z0-9\\._-]");
+ Matcher matcher;
+ for (int i= 0; i<string.length(); i++) {
+ char c=string.charAt(i);
+ matcher = pattern.matcher(""+c);
+ if(matcher.find())
+ escString.append(c);
+ else {
+ int hexval=(byte)c;
+ escString.append("%"+Integer.toHexString(hexval).toUpperCase());
+
+ }
+ }
+ return escString.toString();
+ }
+
+ public static String unescapeString(String escString) {
+ StringBuffer string=new StringBuffer();
+ if (escString.indexOf('%')==-1)
+ return escString;
+ String[] s= escString.split("%");
+ string.append(s[0]);
+ for(int i=1 ; i<s.length;i++) {
+ int c =Integer.parseInt(s[i].substring(0,2),16);
+ string.append((char)c);
+ if(s[i].length()>2)
+ string.append(s[i].substring(2));
+
+ }
+ return string.toString();
+
+ }
+
+
+}