【发布时间】:2019-05-28 05:55:07
【问题描述】:
我正在尝试遍历节点并检查 InnerText 以确定它们是否包含关键字。我有这个在 WPF 中工作,但我是使用 UWP 的新手,这让我很头疼。任何建议将不胜感激。
我目前只得到 HERE: 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类型而不是Windows.Data.Xml.Dom.XmlDocument,您应该能够像在 WPF 中一样使用相同的代码。 -
XML 的定义非常庞大。使用 System.Xml 时遇到的主要问题是我收到此错误:“XmlDocument”不包含“SelectNodes”的定义,并且找不到接受“XmlDocument”类型的第一个参数的可访问扩展方法“SelectNodes”(是您缺少 using 指令或程序集引用?)我从以下代码中得到: System.Xml.XmlNodeList nodeList = doc.SelectNodes("/ns:feed/ns:entry", ns);