解析する必要があるプレイリストがあり、それらをリスト ボックスに設定するなどの操作を行う必要があります。ここに .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="oh.xspf">
<vlc:node title="B">
<vlc:item tid="0"/>
<vlc:item tid="1"/>
</vlc:node>
<vlc:node title="Solo">
<vlc:item tid="2"/>
</vlc:node>
</extension>
</playlist>
そして、これが機能するC#コードですが、「node.ChildNode.Item(1).InnerText」を使用しているため、一部のファイルには「場所」「期間」以外のメタデータが含まれているため、問題が発生します。しかし、要素名を使用して必要な情報を取得することはできないようです
private void button1_Click(object sender, EventArgs e)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("1.xspf");
XmlNodeList nodeList = xmlDoc.GetElementsByTagName("track");
string proID = "", proName = "";
foreach (XmlNode node in nodeList)
{
proID = node.ChildNodes.Item(1).InnerText;//ChildNodes.Item(1).InnerText;
//proName = node.SelectSingleNode("duration").InnerText;
listBox1.Items.Add(proID);
}
}