我试图遍历节点并检查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++;
}
答案 0 :(得分:1)
如果您使用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++;
}