2009-08-20 10 views
2

PHP로 iTunes XML 파일을 읽으려고합니다. 특정 정보 비트를 추출하고 싶습니다. 이름, 아티스트 및 앨범 등. 어떻게하면 좋을까요? 나는 전체 파일을 파싱 할 때 꽤 잘 작동하는 this을 발견했다. 아마도 이것을 사용하여 읽기 쉬운 새로운 XML 파일을 만들 수있을 것이라고 생각했습니다.PHP로 iTunes XML 파일 읽기

그러나 더 좋은 방법이 있어야합니다.

트랙의 XML 구조는 다음과 같습니다

<dict> 
    <key>Track ID</key><integer>6136</integer> 
    <key>Name</key><string>The Boy Who Destroyed the World</string> 
    <key>Artist</key><string>AFI</string> 
    <key>Album Artist</key><string>AFI</string> 
    <key>Composer</key><string>AFI</string> 
    <key>Album</key><string>Tony Hawk Pro Skater 3</string> 
    <key>Genre</key><string>Punk Rock</string> 
    <key>Kind</key><string>MPEG audio file</string> 
    <key>Size</key><integer>2971924</integer> 
    <key>Total Time</key><integer>185364</integer> 
    <key>Track Number</key><integer>3</integer> 
    <key>Year</key><integer>1999</integer> 
    <key>Date Modified</key><date>2009-08-20T15:03:20Z</date> 
    <key>Date Added</key><date>2009-08-20T15:03:20Z</date> 
    <key>Bit Rate</key><integer>128</integer> 
    <key>Sample Rate</key><integer>44100</integer> 
    <key>Play Count</key><integer>34</integer> 
    <key>Play Date</key><integer>3332385360</integer> 
    <key>Play Date UTC</key><date>2009-08-06T05:36:00Z</date> 
    <key>Sort Name</key><string>Boy Who Destroyed the World</string> 
    <key>Persistent ID</key><string>9E590180768D4AD8</string> 
    <key>Track Type</key><string>File</string> 
    <key>Location</key><string>FilePath</string> 
    <key>File Folder Count</key><integer>4</integer> 
    <key>Library Folder Count</key><integer>1</integer> 
</dict> 

답변

1

나는 파일을 파싱 한 다음 파싱하기 쉬운 다른 파일을 만드는 것이 옳은 해결책이라고 생각하지 않습니다. 이미 주 파일을 파싱 했으므로 더 많은 작업을해야하는 이유는 무엇입니까?

simplexml을 사용하면 상대적으로 쉽게 XML 객체를 탐색 할 수 있으므로 원하는 정보를 얻을 수 있습니다. simplexml_load_file() 또는 simplexml_load_string()을 사용하여 주 파일을로드 한 다음 SimpleXMLElement::xpath으로 결과 XML 구조를 탐색하여 원하는 데이터를 찾을 수 있습니다.

+0

간단한 XML로 처리 할 수 ​​없습니다. 내가 트랙 노드를 파싱하면, 이렇게 나온다. http://pastebin.com/f19eca19c –

+0

출력 Ben이 잘못 되었나요? 객체가있는 것처럼 보이고, 그 객체를 사용하여 필요한 것을 출력하거나 선택한 DB에 삽입합니다. – Jakub

0

SimpleXML을이 작업을 수행 할 수있는 내장 방법입니다. http://www.devshed.com/c/a/XML/SimpleXML/은 simple xML에 대한 php.net 섹션뿐만 아니라 훌륭한 튜토리얼처럼 보입니다.