Я пытаюсь просмотреть узлы и проверить InnerText, чтобы определить, содержат ли они ключевое слово. У меня это работало в WPF, но я новичок в использовании UWP, и это вызывает у меня головную боль. Мы ценим любые предложения.
В настоящее время я получаю только ЗДЕСЬ: 0, поэтому я знаю, что он запускает цикл foreach. Должно появиться около 100 узлов.
В WPF я использовал это, которое отлично работало:
foreach (XmlNode node in nodeList)
Попытка этого в UWP, которая не работает:
foreach (IXmlNode node in nodeList)
Вот часть моего кода, с которой у меня проблемы:
var doc = new XmlDocument();
StorageFile tempFile = await ApplicationData.Current.LocalFolder.GetFileAsync("weatheralerts.xml");
String datas = await FileIO.ReadTextAsync(tempFile);
doc.LoadXml(datas);
var nodeList = doc.SelectNodesNS("/ns:feed/ns:entry", "xmlns:ns='http://www.w3.org/2005/Atom'");
var x = 0;
foreach (IXmlNode node in nodeList)
{
Data1.Text = "HERE: " + x;
x++;
}
XML огромен по определению. Основная проблема, с которой я сталкиваюсь при использовании System.Xml, заключается в том, что я получаю эту ошибку: «XmlDocument» не содержит определения для «SelectNodes», и нет доступного метода расширения «SelectNodes», принимающего первый аргумент типа «XmlDocument». вам не хватает директивы using или ссылки на сборку?) Я получаю это из этого кода: System.Xml.XmlNodeList nodeList = doc.SelectNodes("/ns:feed/ns:entry", ns);
Если вы используете System.Xml.XmlDocument
вместо Windows.Data.Xml.Dom.XmlDocument
, вы сможете использовать метод SelectNodes
с XmlNamespaceManager
:
var doc = new XmlDocument();
StorageFile tempFile = await ApplicationData.Current.LocalFolder.GetFileAsync("weatheralerts.xml");
String datas = await FileIO.ReadTextAsync(tempFile);
doc.LoadXml(datas);
var nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("ns", "http://www.w3.org/2005/Atom");
var nodeList = doc.SelectNodes("/ns:feed/ns:entry", nsmgr);
var x = 0;
foreach (XmlNode node in nodeList)
{
Data1.Text = "HERE: " + x;
x++;
}
Я все еще получаю ту же ошибку: 'XmlDocument' does not contain a definition for 'SelectNodes' and no accessible extension method 'SelectNodes' accepting a first argument of type 'XmlDocument' could be found (are you missing a using directive or an assembly reference?)
@RogerJohnson: вам нужно настроить обновление Fall Creators Update (сборка 16299) или более позднюю версию.
Вы забыли опубликовать данные XML, но если вы используете тип
System.Xml.XmlDocument
вместоWindows.Data.Xml.Dom.XmlDocument
, вы сможете использовать тот же код, что и в WPF.