получить узлы-предки выбранного узла xml, используя c #, в многострочное текстовое поле - PullRequest
0 голосов
/ 10 мая 2010

Я использую c # .net. У меня есть XML-файл, который содержит много узлов. Я получил XML-файл в виде дерева. Теперь, когда я выбираю определенный узел в древовидной структуре, я должен иметь возможность отображать всех его предков в многострочном текстовом поле. Пожалуйста, предложите мне сделать эту работу.

1 Ответ

0 голосов
/ 10 мая 2010

Я не совсем уверен, что вы хотите, но с этого можно начать.
Метод расширения получит xpath к узлу XElement с атрибутами для более точного указания точного элемента.

public static string ToXPath(this XElement element)
{
    var current = element.Parent;
    string result = "";
    while (current != null)
    {
        string currentDef = current.Name.ToString();
        string attribsDef = "";
        foreach (var attrib in current.Attributes())
        {
            attribsDef += " and @" + attrib.Name + "='" + attrib.Value + "'";
        }
        if (attribsDef.Length > 0)
        {
            currentDef += "[" + attribsDef.Substring(5) + "]";
        }
        result = "/" + currentDef + result;
        current = current.Parent;
    }
    return result.Substring(1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...