public static string RefineLocationString(string elemAddr)
{
elemAddr = elemAddr.Trim(' ', '\t', '\r', '\n', '\v', '/', '\\');
if (String.IsNullOrEmpty(elemAddr))
return ".";
// replace all back-slaches to slash
elemAddr = elemAddr.Replace('\\', '/');
var sb = new StringBuilder(elemAddr.Length);
var steps = elemAddr.SplitPathNamespaceSafe();
foreach(var step in steps)
{
sb.Append("/" + RefineSingleElement(step));
}
return sb.Remove(0, 1).ToString();
}