C# XML 根级别上的数据无效,XMLDriver,Xpath

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Xml;

namespace 六月版.客户.网站.Models
{
    public static class XMLDriver
    {
        public static List<string> GetObjects(string nodeName, string filepath)
        {

            Stream st = new FileStream(filepath, FileMode.Open);

            XmlDocument doc = new XmlDocument();
            doc.Load(st);
            List<string> listString = new List<string>();
            try
            {
                XmlNodeList nodes = doc.SelectNodes("/root/" + nodeName + "/*");
                foreach (XmlNode item in nodes)
                {
                    listString.Add(item.Name);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                st.Close();
                doc = null;
            }
            return listString;
        }
    }
}

今天使用XML ,记得以前用过,现在完全没印象,第一个问题就是 ,根级别上的数据无效,话说我的XML格式没问题啊。总提示我这玩意。一顿百度,

先看XML结构,结构也没问题啊。。。


<?xml version="1.0" encoding="utf-8" ?>
<root>
  <装修类型>
    <新房 />
    <二手房 />
  </装修类型>

  <功能方式>
    <市政暖气 />
    <地热 />
    <电热膜 />
    <电热暖气 />
    <其他 />
  </功能方式>

  <朝向>
    <南北向 />
    <东西向 />
  </朝向>
</root>

 

一个小时后。。找到了解决办法。

 XmlDocument doc = new XmlDocument();
 doc.Load(st);//之前用的是LoadXML(读取的是标准格式)。坑死了。
顺带研究了一下 Xpath,奉上代码。

posted on 2014-08-19 15:46  shanheblog  阅读(2370)  评论(1编辑  收藏  举报

导航