xmlToList不返回xmlValue

时间:2014-01-13 05:24:27

标签: xml r

我有两个基本相同结构的XML文件。但是,xmlToList不会返回其中一个文件的XML值。以下是有效的示例:

library(XML)
doc1 <- xmlParse("http://www.wnba.com/games/game_component/dynamic/20130527/CHIPHO/pbp_all.xml")
node1 <- getNodeSet(doc1, path="/")
l1 <- xmlToList(node1[[1]])
l1[[1]][[1]][[1]]

$text
[1] "<![CDATA[(10:00)Start Period]]>"

$.attrs
eventid         prd  game_clock        htms        vtms    msg_type action_type player_code 
    "1"         "1"     "10:00"         "0"         "0"        "12"         "0"          "" 
     tm 
"mercury" 

以下是没有的示例:

doc2 <- xmlParse("http://www.nba.com/games/game_component/dynamic/20130528/MIAIND/pbp_all.xml")
node2 <- getNodeSet(doc2, path="/")
l2 <- xmlToList(node2[[1]])
l2[[1]][[1]][[1]]

[[1]]
NULL

$.attrs
eventid         prd  game_clock        htms        vtms    msg_type action_type player_code 
    "0"         "1"     "12:00"         "0"         "0"        "12"         "0"          "" 
     tm 
"pacers"

我希望看到(12:00)Start Period而不是NULL。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

第二个文件存在两个问题:

  • <>代替&lt&gt
  • >event>而不是在</event>
  • 关闭代码eventid="185"

我已将更正后的XML放入pastebin:

> doc3 <- xmlParse("http://pastebin.com/raw.php?i=LkwZmqmw")
> node3 <- getNodeSet(doc3, path="/")
> l3 <- xmlToList(node3[[1]])
> l3$message$game[[1]]

$text
[1] "<![CDATA[(12:00)Start Period]]>"

$.attrs
    eventid         prd  game_clock        htms        vtms    msg_type action_type player_code          tm 
        "0"         "1"     "12:00"         "0"         "0"        "12"         "0"          ""    "pacers"