加载XML文件

时间:2014-12-16 10:56:10

标签: c# asp.net xml

我正在从xml文件加载重定向。

XML文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfRedirectModel xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <RedirectModel>
    <Time>0001-01-01T00:00:00</Time>
    <oldUrl>/301/</oldUrl>
    <newUrl>/alloy-track/</newUrl>
    <type>1</type>
    <Id>6d278d45-aab1-4fa2-953f-f03963a29ff8</Id>
  </RedirectModel>
</ArrayOfRedirectModel>

在我阅读xml文件的地方,代码看起来像这样。

XmlDocument xDoc = new XmlDocument();
string mappath = HttpContext.Current.Server.MapPath("~/ClientResources/SeoCache");
xDoc.Load(mappath + "//cache.xml");
XmlNodeList xmlSelectedNodes = xDoc.SelectNodes("RedirectModel");   

foreach (XmlNode node in xmlSelectedNodes)
{

但我的&#34; xmlSelectedNodes&#34;逗留&#34; null&#34;。

我想得到&#34; oldUrl&#34;和&#34; newUrl&#34;在一个字符串变量中,所以我可以使用它。

有谁知道我做错了什么?

2 个答案:

答案 0 :(得分:3)

你完全错过了根元素,试试:

XmlNodeList xmlSelectedNodes = xDoc.SelectNodes("//ArrayOfRedirectModel/RedirectModel"); 

如果从根节点本身选择节点,原始代码也会起作用:

XmlNodeList xmlSelectedNodes = xDoc.DocumentElement.SelectNodes("RedirectModel"); 

答案 1 :(得分:0)

是的,应该是

  

XmlNodeList xmlSelectedNodes =   xDoc.SelectNodes( “// ArrayOfRedirectModel / RedirectModel”);