我正在尝试读取大小约为65mb的windows update package.xml文件,我试图使用Xpath获取URL属性,但由于某些奇怪的原因,我的对象总是返回空。这是我的代码:
doc.Load(@".\package.xml");
string xpath= "/OfflineSyncPackage/FileLocations/FileLocation/@Url";
XmlNodeList nodeList2 = doc.SelectNodes(xpath);
我也尝试过使用XmlReader,这对我来说也不起作用:
string packXML = @".\package.xml";
using (XmlReader xr = XmlReader.Create(packXML))
{
while (xr.Read())
{
switch (xr.NodeType)
{
case XmlNodeType.Element:
if (xr.Name == "OfflineSyncPackage")
{
xr.ReadStartElement("FileLocations");
if (xr.Name == "FileLocations")
{
if (xr.Name == "FileLocation")
{
}
}
}
break;
}
}
}
package.xml文件可以在package.cab中找到,该文件位于以下文件中:http://download.windowsupdate.com/microsoftupdate/v6/wsusscan/wsusscn2.cab
执行此操作的最佳方法是什么,因为我不希望由于大小而将整个文件加载到内存中 任何建议表示赞赏!谢谢
答案 0 :(得分:1)
我终于明白了!
public void ParseXML(string XMLPath)
{
XmlReader xmlReader = XmlReader.Create(XMLPath);
while (xmlReader.Read())
{
if (xmlReader.Name.Equals("FileLocation") && (xmlReader.NodeType == XmlNodeType.Element))
{
string url = xmlReader.GetAttribute("Url");
}
}
}