Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
>>>++++++да это же брейнфак :)
public static XmlNode GetNodeByscript(XmlNode node, string script)
{
XmlNode ret = node;
int num = 0;
string[] cells = script.Split('|');
foreach (string cell in cells)
{
if (int.TryParse(cell.Substring(1, cell.Length - 1), out num))
{
switch (cell[0])
{
case 'p'://ParentNode
case 'P':
for (int i = 0; i < num; i++)
{
if (ret.ParentNode != null) ret = ret.ParentNode;
else return null;
}
break;
case 'n'://NextSibling
case 'N':
for (int i = 0; i < num; i++)
{
if (ret.NextSibling != null) ret = ret.NextSibling;
else return null;
}
break;
case 'b'://Back(PreviousSibling)
case 'B':
for (int i = 0; i < num; i++)
{
if (ret.PreviousSibling != null) ret = ret.PreviousSibling;
else return null;
}
break;
case 'c'://ChildNodes
case 'C':
if (ret.ChildNodes != null && ret.ChildNodes.Count > num)
ret = ret.ChildNodes[num];
break;
default:
return null;
}
}
}
return ret;
}
* This source code was highlighted with Source Code Highlighter.
Мой удобный велосипед (интерфейс на Javascript) для навигации по XML документу