public static string GetXPath(XElement fromElement, XElement toElement)
{
var path = "";
var absolutePathFrom = GetAbsolutePath(fromElement);
var absolutePathTo = GetAbsolutePath(toElement);
var commonPath = 0;
while (commonPath < absolutePathFrom.Count && commonPath < absolutePathTo.Count && absolutePathFrom[commonPath] == absolutePathTo[commonPath])
commonPath++;
for (var i = 0; i < absolutePathFrom.Count - commonPath + 1; i++)
path += "../";
for (var i = commonPath; i < absolutePathTo.Count; i++)
{
path += GetNameWithIndex(absolutePathTo[i]) + "/";
}
path += GetNameWithIndex(toElement);
//path = path.Replace("[1]", "");
return path;
}