0
点赞
收藏
分享

微信扫一扫

拓端tecdat|如何从xml文件创建R语言数据框dataframe

芷兮离离 2022-11-11 阅读 71

 

问题重现 

软件:R语言

环境:windows

问题描述:我有一个XML文档文件。文件的一部分如下所示:

1.  <?xml version="1.0" encoding="UTF-8"?>
2. <List>
3. <SubCategory>
4. <ID>BO</ID>
5. <Name>Bookcases</Name>
6. </SubCategory>
7. <SubCategory>
8. <ID>CH</ID>
9. <Name>Chairs</Name>
10. </SubCategory>
11. <SubCategory>
12. <ID>LA</ID>
13. <Name>Labels</Name>
14. </SubCategory>
15. <SubCategory>
16. <ID>TA</ID>
17. <Name>Tables</Name>
18. </SubCategory>
19. <SubCategory>
20. <ID>ST</ID>
21. <Name>Storage</Name>
22. </SubCategory>
23. <SubCategory>
24. <ID>FU</ID>
25. <Name>Furnishings</Name>
26. </SubCategory>
27. <SubCategory>
28. <ID>AR</ID>
29. <Name>Art</Name>
30. </SubCategory>
31. <SubCategory>
32. <ID>PH</ID>
33. <Name>Phones</Name>
34. </SubCategory>
35. <SubCategory>
36. <ID>BI</ID>
37. <Name>Binders</Name>
38. </SubCategory>
39. <SubCategory>
40. <ID>AP</ID>
41. <Name>Appliances</Name>
42. </SubCategory>
43. <SubCategory>
44. <ID>PA</ID>
45. <Name>Paper</Name>
46. </SubCategory>
47. <SubCategory>
48. <ID>AC</ID>
49. <Name>Accessories</Name>
50. </SubCategory>
51. <SubCategory>
52. <ID>EN</ID>
53. <Name>Envelopes</Name>
54. </SubCategory>
55. <SubCategory>
56. <ID>FA</ID>
57. <Name>Fasteners</Name>
58. </SubCategory>
59. <SubCategory>
60. <ID>SU</ID>
61. <Name>Supplies</Name>
62. </SubCategory>
63. <SubCategory>
64. <ID>MA</ID>
65. <Name>Machines</Name>
66. </SubCategory>
67. <SubCategory>
68. <ID>CO</ID>
69. <Name>Copiers</Name>
70. </SubCategory>
71. </List>

从这个XML文件中,我想创建一个具有ID,name 列的R数据框。请注意,name和ID应包含变量的所有级别。

解决方案

假设这是正确的​​taxlots.shp.xml​​文件:

1.  <?xml version="1.0" encoding="UTF-8"?>
2. <List>
3. <SubCategory>
4. <ID>BO</ID>
5. <Name>Bookcases</Name>
6. </SubCategory>
7. <SubCategory>
8. <ID>CH</ID>
9. <Name>Chairs</Name>
10. </SubCategory>
11. <SubCategory>
12. <ID>LA</ID>
13. <Name>Labels</Name>
14. </SubCategory>
15. <SubCategory>
16. <ID>TA</ID>
17. <Name>Tables</Name>
18. </SubCategory>
19. <SubCategory>
20. <ID>ST</ID>
21. <Name>Storage</Name>
22. </SubCategory>
23. <SubCategory>
24. <ID>FU</ID>
25. <Name>Furnishings</Name>
26. </SubCategory>
27. <SubCategory>
28. <ID>AR</ID>
29. <Name>Art</Name>
30. </SubCategory>
31. <SubCategory>
32. <ID>PH</ID>
33. <Name>Phones</Name>
34. </SubCategory>
35. <SubCategory>
36. <ID>BI</ID>
37. <Name>Binders</Name>
38. </SubCategory>
39. <SubCategory>
40. <ID>AP</ID>
41. <Name>Appliances</Name>
42. </SubCategory>
43. <SubCategory>
44. <ID>PA</ID>
45. <Name>Paper</Name>
46. </SubCategory>
47. <SubCategory>
48. <ID>AC</ID>
49. <Name>Accessories</Name>
50. </SubCategory>
51. <SubCategory>
52. <ID>EN</ID>
53. <Name>Envelopes</Name>
54. </SubCategory>
55. <SubCategory>
56. <ID>FA</ID>
57. <Name>Fasteners</Name>
58. </SubCategory>
59. <SubCategory>
60. <ID>SU</ID>
61. <Name>Supplies</Name>
62. </SubCategory>
63. <SubCategory>
64. <ID>MA</ID>
65. <Name>Machines</Name>
66. </SubCategory>
67. <SubCategory>
68. <ID>CO</ID>
69. <Name>Copiers</Name>
70. </SubCategory>
71. </List>

XML格式的数据很少以允许该​​xmlToDataFrame​​功能正常工作的方式进行组织。最好提取列表中的所有内容,然后将列表绑定到数据框中:

1.  data <- xmlParse("ProductSubcategory.xml")
2.
3. xml_data <- xmlToList(data)
4.
5. dataDictionary <- xmlToDataFrame(getNodeSet(data,"//SubCategory"))

拓端tecdat|如何从xml文件创建R语言数据框dataframe_r语言

拓端tecdat|如何从xml文件创建R语言数据框dataframe_r语言_02

举报

相关推荐

0 条评论