Itunes は、私が使い慣れていないエクスポート xml 構造を提供してくれます (xml コードを参照)。
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<dict>
<key>68768</key>
<dict>
<key>Track ID</key><integer>68768</integer>
<key>Name</key><string>ABBA Medley</string>
<key>Artist</key><string>Party All Stars</string>
<key>Disc Number</key><integer>1</integer>
<key>Track Number</key><integer>17</integer>
<key>Persistent ID</key><string>B121116C66BE0F4B</string>
</dict>
<key>68781</key>
<dict>
<key>Track ID</key><integer>68781</integer>
<key>Name</key><string>Afflitto</string>
<key>Artist</key><string>Fiocco</string>
<key>Disc Number</key><integer>1</integer>
<key>Track Number</key><integer>9</integer>
<key>Persistent ID</key><string>5D09837999591307</string>
</dict>
<key>68793</key>
<dict>
<key>Track ID</key><integer>68793</integer>
<key>Name</key><string>Agadou</string>
<key>Artist</key><string>Saradossa Band</string>
<key>Disc Number</key><integer>1</integer>
<key>Track Number</key><integer>4</integer>
<key>Persistent ID</key><string>4DFFF3C3498C02B4</string>
</dict>
</dict>
</dict>
</plist>
私の目標は、C# で LinqToXml を使用して可能な場合は次の配列を取得することです。
17 ABBA Medley B121116C66BE0F4B
9 Afflitto 5D09837999591307
4 Agadou 4DFFF3C3498C02B4
これは可能ですか?
基本的な C# コードを書いたのですが、途中で稲妻に打たれました...
XDocument doc = XDocument.Load(iTunesXmlFile);
var linqtoxml = from node in doc.Descendants("dict") select node; // ooo Boy :(
foreach (var dict in linqtoxml)
{
// and lightning bolt again...
}
Ps: 明らかなように、xml 構造を変更することはできません。
Pps: これはクリーンアップされた iTunes XML バージョンですが、基本的な概念はケース スタディとして提示されています。