R中的包似乎在将XML转换为JSON时无法正常工作.我已尝试使用'XML'包中的RJSONIO,rjson和jsonlite.我首先使用XML :: xmlToList()解析XML并将其转换为列表,然后使用这些3个包中的toJSON()将它们转换为JSON.
我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<votes>
<row Id="1" PostId="1" VoteTypeId="2" CreationDate="2014-05-13T00:00:00.000" />
<row Id="2" PostId="1" VoteTypeId="2" CreationDate="2014-05-13T00:00:00.000" />
<row Id="3" PostId="3" VoteTypeId="2" CreationDate="2014-05-13T00:00:00.000" />
</votes>
Run Code Online (Sandbox Code Playgroud)
我的源代码:
library(XML)
library(RJSONIO)
library(rjson)
library(jsonlite)
xml_parse <- xmlTreeParse("~/Downloads/test.xml", useInternalNodes=TRUE)
xml_root <- xmlRoot(xml_parse)
xml_list <- xmlToList(xml_root, simplify = TRUE)
#jsonlite package
xml_jsonlite <- jsonlite::toJSON(xml_list)
write(xml_jsonlite, "test_jsonlite.json")
#RJSONIO package
xml_rjsonio <- RJSONIO::toJSON(xml_list)
write(xml_rjsonio, "test_rjsonio.json")
#rjson package
xml_rjson <- RJSONIO::toJSON(xml_list)
write(xml_rjson, "test_rjson.json")
Run Code Online (Sandbox Code Playgroud)
从RJSONIO转换的JSON文件:
{
"row": {
"Id": "98",
"PostId": "10",
"VoteTypeId": "2",
"CreationDate": "2014-05-14T00:00:00.000"
},
"row": …Run Code Online (Sandbox Code Playgroud)