Хм, а чего его ловить, он же первый - ну возьми xmlDoc.DocumentElement. А если нужно уже что то искать внутри то можно так:
Загрузим хмл и добавим алиасы для неймспейсов:XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("XMLFile1.xml");
XmlNamespaceManager xnsManager = new XmlNamespaceManager(xmlDoc.NameTable);
xnsManager.AddNamespace("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
xnsManager.AddNamespace("dc", "http://purl.org/dc/elements/1.1/");
xnsManager.AddNamespace("dc", "http://purl.org/dc/elements/1.1/");
xnsManager.AddNamespace("rss", "http://purl.org/rss/1.0/");
Так можно получить корень:XmlNode xmlNode = xmlDoc.DocumentElement.SelectSingleNode("/rdf:RDF", xnsManager);
Усложним, найдем тег channel:
абсолютный путь:XmlNode xmlNode = xmlDoc.DocumentElement.SelectSingleNode("/rdf:RDF/rss:channel", xnsManager);
ну или так:XmlNode xmlNode = xmlDoc.DocumentElement.SelectSingleNode("rss:channel", xnsManager);
а можно и минуя всякие нейпспейсы, через функции xPath XmlNode xmlNode = xmlDoc.DocumentElement.SelectSingleNode("//*[local-name()='channel']");
Ньюансы:
для дефолтного неймспейса мы тоже создали алиас rss и указываем его в строке поиска, при вызове SelectSingleNode или SelectNodes мы передаем туда наш XmlNamespaceManager.
Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 09 May 2008 11:36
|