XML : C# parsing .XSPF (XML)

i have a playlist(s) that i need to parse and i need to do stuff like set them in list box etc. here is the .xspf

  <?xml version="1.0" encoding="UTF-8"?>  <playlist xmlns="http://xspf.org/ns/0/" xmlns:vlc="http://www.videolan.org/vlc/playlist/ns/0/" version="1">      <title>Playlist</title>      <trackList>          <track>              <location>file:///E:/Downloads/video1.mp4</location>              <duration>681493</duration>              <extension application="http://www.videolan.org/vlc/playlist/0">                  <vlc:id>0</vlc:id>              </extension>          </track>          <track>              <location>file:///E:/Downloads/video2.mp4</location>              <duration>614585</duration>              <extension application="http://www.videolan.org/vlc/playlist/0">                  <vlc:id>1</vlc:id>              </extension>          </track>          <track>              <location>file:///E:/Downloads/video3.mp4</location>              <duration>220629</duration>              <extension application="http://www.videolan.org/vlc/playlist/0">                  <vlc:id>2</vlc:id>              </extension>          </track>              </trackList>      <extension application="http://www.videolan.org/vlc/playlist/0">          <vlc:node title="oooh.xspf">          <vlc:node title="BJLL">              <vlc:item tid="0"/>              <vlc:item tid="1"/>                   </vlc:node>          <vlc:node title="Solo">              <vlc:item tid="2"/>                   </vlc:node>      </extension>  </playlist>    

i got to work parsing the location duration and the id.
but now i need to get the value of the "title"(the folder) attribute and all "tid"(the id) numbers in every title :
BLJJ
0
1

Solo
2

So i can sort files to folders by their ids

here is how i parse the location duration and id :

          class PlaylistItem          {              public string location { get; set; }              public string extensions { get; set; }              public string duration { get; set; }          }          private void button2_Click(object sender, EventArgs e)          {                XDocument xdoc = XDocument.Load(@"1.xspf");              XNamespace ns = ((XElement)xdoc.FirstNode).Name.Namespace;              XNamespace nx = ("http://www.videolan.org/vlc/playlist/ns/0/");                List<PlaylistItem> fileSignatures = (from file in xdoc.Descendants(ns+ "track")                                                    select new PlaylistItem                                                    {                                                        location = (string)file.Element(ns + "location").Value,                                                        extensions = (string)file.Element(ns + "extension").Value,                                                        duration = (string)file.Element(ns + "duration")                                                    }).ToList();                  foreach (var item in fileSignatures)              {                  if (item.duration != null)                  {                      listBox1.Items.Add("Duration: " + item.duration + "  id: " + item.extensions);                      listBox1.Items.Add("File: " + item.location);                  }                  else                  {                    }              }              }    

No comments:

Post a Comment