Ошибка повышения XpathNavigator NotSupportedException - PullRequest
0 голосов
/ 01 декабря 2011

Я хочу обновить XDocument, используя следующий код

private static bool ResetUpdateVersion()
{
    // this indicate either the verwsion is different or not
    // this will either call the update only or writting the defualt
    bool Result = false;
    //// check for version using xpath
    XPathNavigator navigator = document.CreateNavigator();
    //ShortcutList is the main element that contain all the other elements 
    XPathNavigator node = navigator.SelectSingleNode(@"/ShortcutList");
    XmlNamespaceManager ns = new XmlNamespaceManager(navigator.NameTable);
    if (node != null)
    {
        if (node.GetAttribute("Version", ns.DefaultNamespace) != Version)
        {
            node = navigator.SelectSingleNode(@"/ShortcutList/@Version");

            node.SetValue( Version);

            Result = true;
        }
        else
        {
            Result = false;
        }
    }

    return Result;
}

но это вызывает NotSupportedException в строке node.SetValue( Version);, я не знаю почему, есть идея решить эту проблему

1 Ответ

1 голос
/ 01 декабря 2011

XPathNavigator поверх XDocument или XElement доступен только для чтения, если вы хотите манипулировать XDocument или XElement, используйте API, представленные в System.Xml.Linq (например, http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.setvalue.aspx).

...