XMLパッケージ覚書
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
目次
#contents
*目的 [#e55a6066]
主に内部Cレベルオブジェクトに基づくXpath式の振る舞い方を調べる。~
*パッケージ本家 [#a5f7fc59]
http://www.omegahat.org/RSXML/
*SAX [#j0ec275c]
xml文書をTree構造ではなくline構造で処理できるようにする。~
**xmlEventParse() [#q80676b2]
*Xpath式 [#qb19b632]
*getSibling [#j4878466]
*内部オブジェクトを利用したサンプル [#d1674f1c]
内部オブジェクトでxmlを指定すると、ポインタでの操作になるため、Xpath式で検索を行う必要がある(らしい)。~
ちなみにサンプルデータはiTunesのプロパティリストファイルだ。~
これをうまく使うと、自分が持っているiTunesでのアーティストの分析ができそうだ。~
library(XML)
fileName <- system.file("exampleData", "iTunes.plist", package = "XML")
doc <- xmlTreeParse(fileName, useInternal = TRUE)
nodes <- getNodeSet(doc, "//key[text() = 'Artist']")
sapply(nodes, function(x) xmlValue(getSibling(x)))
実行結果
> library(XML)
> fileName <- system.file("exampleData", "iTunes.plist", package = "XML")
> doc <- xmlTreeParse(fileName, useInternal = TRUE)
> nodes <- getNodeSet(doc, "//key[text() = 'Artist']")
> sapply(nodes, function(x) xmlValue(getSibling(x)))
[1] "Norah Jones" "Norah Jones"
getNodeSet関数でターゲットの内部クラスとXpath式を指定する。~
内部クラス:doc Xpath式://key[text() = 'Artist']~
xmlValue(getSibling(x))で値を取り出す。~
ここでは、"Norah Jones"が2つ取り出された。~
サンプルデータ:iTunes.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Major Version</key><integer>1</integer>
<key>Minor Version</key><integer>1</integer>
<key>Application Version</key><string>7.5</string>
<key>Features</key><integer>1</integer>
<key>Show Content Ratings</key><true/>
<key>Music Folder</key><string>file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/</string>
<key>Library Persistent ID</key><string>BD55EC2E7FDB1DAE</string>
<key>Tracks</key>
<dict>
<key>181</key>
<dict>
<key>Track ID</key><integer>181</integer>
<key>Name</key><string>Don't Know Why</string>
<key>Artist</key><string>Norah Jones</string>
<key>Composer</key><string>Jesse Harris</string>
<key>Album</key><string>Come Away With Me</string>
<key>Genre</key><string>Jazz</string>
<key>Kind</key><string>AAC audio file</string>
<key>Size</key><integer>3031411</integer>
<key>Total Time</key><integer>186152</integer>
<key>Disc Number</key><integer>1</integer>
<key>Disc Count</key><integer>1</integer>
<key>Track Number</key><integer>1</integer>
<key>Track Count</key><integer>14</integer>
<key>Year</key><integer>2002</integer>
<key>Date Modified</key><date>2007-02-05T10:46:04Z</date>
<key>Date Added</key><date>2005-08-22T21:14:30Z</date>
<key>Bit Rate</key><integer>128</integer>
<key>Sample Rate</key><integer>44100</integer>
<key>Play Count</key><integer>24</integer>
<key>Play Date</key><integer>3274252284</integer>
<key>Play Date UTC</key><date>2007-10-02T21:31:24Z</date>
<key>Persistent ID</key><string>D7F9F158A4A48E53</string>
<key>Track Type</key><string>File</string>
<key>Location</key><string>file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/01%20Don't%20Know%20Why.m4a</string>
<key>File Folder Count</key><integer>-1</integer>
<key>Library Folder Count</key><integer>-1</integer>
</dict>
<key>182</key>
<dict>
<key>Track ID</key><integer>182</integer>
<key>Name</key><string>Seven Years</string>
<key>Artist</key><string>Norah Jones</string>
<key>Composer</key><string>Lee Alexander</string>
<key>Album</key><string>Come Away With Me</string>
<key>Genre</key><string>Jazz</string>
<key>Kind</key><string>AAC audio file</string>
<key>Size</key><integer>2376546</integer>
<key>Total Time</key><integer>145262</integer>
<key>Disc Number</key><integer>1</integer>
<key>Disc Count</key><integer>1</integer>
<key>Track Number</key><integer>2</integer>
<key>Track Count</key><integer>14</integer>
<key>Year</key><integer>2002</integer>
<key>Date Modified</key><date>2007-02-05T10:46:05Z</date>
<key>Date Added</key><date>2005-08-22T21:14:49Z</date>
<key>Bit Rate</key><integer>128</integer>
<key>Sample Rate</key><integer>44100</integer>
<key>Play Count</key><integer>23</integer>
<key>Play Date</key><integer>3274252429</integer>
<key>Play Date UTC</key><date>2007-10-02T21:33:49Z</date>
<key>Persistent ID</key><string>D7F9F158A4A48E54</string>
<key>Track Type</key><string>File</string>
<key>Location</key><string>file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/02%20Seven%20Years.m4a</string>
<key>File Folder Count</key><integer>-1</integer>
<key>Library Folder Count</key><integer>-1</integer>
</dict>
</dict>
</dict>
</plist>
終了行:
目次
#contents
*目的 [#e55a6066]
主に内部Cレベルオブジェクトに基づくXpath式の振る舞い方を調べる。~
*パッケージ本家 [#a5f7fc59]
http://www.omegahat.org/RSXML/
*SAX [#j0ec275c]
xml文書をTree構造ではなくline構造で処理できるようにする。~
**xmlEventParse() [#q80676b2]
*Xpath式 [#qb19b632]
*getSibling [#j4878466]
*内部オブジェクトを利用したサンプル [#d1674f1c]
内部オブジェクトでxmlを指定すると、ポインタでの操作になるため、Xpath式で検索を行う必要がある(らしい)。~
ちなみにサンプルデータはiTunesのプロパティリストファイルだ。~
これをうまく使うと、自分が持っているiTunesでのアーティストの分析ができそうだ。~
library(XML)
fileName <- system.file("exampleData", "iTunes.plist", package = "XML")
doc <- xmlTreeParse(fileName, useInternal = TRUE)
nodes <- getNodeSet(doc, "//key[text() = 'Artist']")
sapply(nodes, function(x) xmlValue(getSibling(x)))
実行結果
> library(XML)
> fileName <- system.file("exampleData", "iTunes.plist", package = "XML")
> doc <- xmlTreeParse(fileName, useInternal = TRUE)
> nodes <- getNodeSet(doc, "//key[text() = 'Artist']")
> sapply(nodes, function(x) xmlValue(getSibling(x)))
[1] "Norah Jones" "Norah Jones"
getNodeSet関数でターゲットの内部クラスとXpath式を指定する。~
内部クラス:doc Xpath式://key[text() = 'Artist']~
xmlValue(getSibling(x))で値を取り出す。~
ここでは、"Norah Jones"が2つ取り出された。~
サンプルデータ:iTunes.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Major Version</key><integer>1</integer>
<key>Minor Version</key><integer>1</integer>
<key>Application Version</key><string>7.5</string>
<key>Features</key><integer>1</integer>
<key>Show Content Ratings</key><true/>
<key>Music Folder</key><string>file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/</string>
<key>Library Persistent ID</key><string>BD55EC2E7FDB1DAE</string>
<key>Tracks</key>
<dict>
<key>181</key>
<dict>
<key>Track ID</key><integer>181</integer>
<key>Name</key><string>Don't Know Why</string>
<key>Artist</key><string>Norah Jones</string>
<key>Composer</key><string>Jesse Harris</string>
<key>Album</key><string>Come Away With Me</string>
<key>Genre</key><string>Jazz</string>
<key>Kind</key><string>AAC audio file</string>
<key>Size</key><integer>3031411</integer>
<key>Total Time</key><integer>186152</integer>
<key>Disc Number</key><integer>1</integer>
<key>Disc Count</key><integer>1</integer>
<key>Track Number</key><integer>1</integer>
<key>Track Count</key><integer>14</integer>
<key>Year</key><integer>2002</integer>
<key>Date Modified</key><date>2007-02-05T10:46:04Z</date>
<key>Date Added</key><date>2005-08-22T21:14:30Z</date>
<key>Bit Rate</key><integer>128</integer>
<key>Sample Rate</key><integer>44100</integer>
<key>Play Count</key><integer>24</integer>
<key>Play Date</key><integer>3274252284</integer>
<key>Play Date UTC</key><date>2007-10-02T21:31:24Z</date>
<key>Persistent ID</key><string>D7F9F158A4A48E53</string>
<key>Track Type</key><string>File</string>
<key>Location</key><string>file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/01%20Don't%20Know%20Why.m4a</string>
<key>File Folder Count</key><integer>-1</integer>
<key>Library Folder Count</key><integer>-1</integer>
</dict>
<key>182</key>
<dict>
<key>Track ID</key><integer>182</integer>
<key>Name</key><string>Seven Years</string>
<key>Artist</key><string>Norah Jones</string>
<key>Composer</key><string>Lee Alexander</string>
<key>Album</key><string>Come Away With Me</string>
<key>Genre</key><string>Jazz</string>
<key>Kind</key><string>AAC audio file</string>
<key>Size</key><integer>2376546</integer>
<key>Total Time</key><integer>145262</integer>
<key>Disc Number</key><integer>1</integer>
<key>Disc Count</key><integer>1</integer>
<key>Track Number</key><integer>2</integer>
<key>Track Count</key><integer>14</integer>
<key>Year</key><integer>2002</integer>
<key>Date Modified</key><date>2007-02-05T10:46:05Z</date>
<key>Date Added</key><date>2005-08-22T21:14:49Z</date>
<key>Bit Rate</key><integer>128</integer>
<key>Sample Rate</key><integer>44100</integer>
<key>Play Count</key><integer>23</integer>
<key>Play Date</key><integer>3274252429</integer>
<key>Play Date UTC</key><date>2007-10-02T21:33:49Z</date>
<key>Persistent ID</key><string>D7F9F158A4A48E54</string>
<key>Track Type</key><string>File</string>
<key>Location</key><string>file://localhost/Users/duncan/Music/iTunes/iTunes%20Music/Norah%20Jones/Come%20Away%20With%20Me/02%20Seven%20Years.m4a</string>
<key>File Folder Count</key><integer>-1</integer>
<key>Library Folder Count</key><integer>-1</integer>
</dict>
</dict>
</dict>
</plist>
ページ名: