日期:2014-05-16  浏览次数:20424 次

Dataset读取xml数据所遇到的问题

  protected void ReadXml()
    {
        DataSet ds = new DataSet();
        ds.ReadXml(Server.MapPath("../admin/playlist.xml"));
        if (ds.Tables.Count > 0)
        {
            Repeater1.DataSource = ds.Tables[0].DefaultView;
            Repeater1.DataBind();
        }

    }

我想读取的是location和titlle的数据,把<playlist></playlist>这部分去掉,能读取出数据,但是xml配置文件却不能正常使用了.
正常使用的xml如下,我该怎样才能从下面的xml读取到之前提起的数据呢?

<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
     <trackList>
         <track>
            <location>/source/yqnyh.mp3</location>
           <title>一千年以后</title>
         </track>
         <track>
             <location>/source/iknow.mp3</location>
             <title>我知道你离我不远</title>
        </track>
      </trackList>
</playlist>

------解决方案--------------------
用xmlserializer,或者XmlDocument或者Xdocument读取。
------解决方案--------------------
随便用XmlSerializer写了一个,已经验证

           XmlSerializer serializer = new XmlSerializer(typeof(playlist));

            string xmlContent = File.ReadAllText("XMLFile1.xml");
            using (TextReader reader = new StringReader(xmlContent))
            {
                playlist playList = serializer.Deserialize(reader) as playlist;
            }


实体类:

    [XmlRoot(Namespace = "http://xspf.org/ns/0/")]
    public class playlist
    {
        public List<track> trackList { get; set; }
        [XmlAttribute]
        public int version { get; set; }
    }
  
    public class track
    {
        [XmlElement]
        public string locati