我正在从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;在一个字符串变量中,所以我可以使用它。
有谁知道我做错了什么?
答案 0 :(得分:3)
你完全错过了根元素,试试:
XmlNodeList xmlSelectedNodes = xDoc.SelectNodes("//ArrayOfRedirectModel/RedirectModel");
如果从根节点本身选择节点,原始代码也会起作用:
XmlNodeList xmlSelectedNodes = xDoc.DocumentElement.SelectNodes("RedirectModel");
答案 1 :(得分:0)
是的,应该是
XmlNodeList xmlSelectedNodes = xDoc.SelectNodes( “// ArrayOfRedirectModel / RedirectModel”);