hope this is very simple. I have this XML
"> xmlroot
"<Period>
<timeInterval>
<start>2015-10-20T00:00Z</start>
<end>2015-10-21T00:00Z</end>
</timeInterval>
<resolution>PT60M</resolution>
<Point>
<position>1</position>
<price.amount>24.20</price.amount>
</Point>
<Point>
<position>2</position>
<price.amount>24.28</price.amount>
</Point>
<Point>
<position>3</position>
<price.amount>24.89</price.amount>
</Point>
<Point>
<position>4</position>
<price.amount>25.64</price.amount>
</Point>
<Point>
<position>5</position>
<price.amount>26.36</price.amount>
</Point>
<Point>
<position>6</position>
<price.amount>27.83</price.amount>
</Point>
<Point>
<position>7</position>
<price.amount>28.88</price.amount>
</Point>
<Point>
<position>8</position>
<price.amount>29.96</price.amount>
</Point>
<Point>
<position>9</position>
<price.amount>28.73</price.amount>
</Point>
<Point>
<position>10</position>
<price.amount>28.09</price.amount>
</Point>
<Point>
<position>11</position>
<price.amount>27.54</price.amount>
</Point>
<Point>
<position>12</position>
<price.amount>27.52</price.amount>
</Point>
<Point>
<position>13</position>
<price.amount>27.35</price.amount>
</Point>
<Point>
<position>14</position>
<price.amount>27.18</price.amount>
</Point>
<Point>
<position>15</position>
<price.amount>27.04</price.amount>
</Point>
<Point>
<position>16</position>
<price.amount>27.39</price.amount>
</Point>
<Point>
<position>17</position>
<price.amount>27.17</price.amount>
</Point>
<Point>
<position>18</position>
<price.amount>27.23</price.amount>
</Point>
<Point>
<position>19</position>
<price.amount>27.16</price.amount>
</Point>
<Point>
<position>20</position>
<price.amount>25.77</price.amount>
</Point>
<Point>
<position>21</position>
<price.amount>24.80</price.amount>
</Point>
<Point>
<position>22</position>
<price.amount>24.08</price.amount>
</Point>
<Point>
<position>23</position>
<price.amount>23.77</price.amount>
</Point>
<Point>
<position>24</position>
<price.amount>23.64</price.amount>
</Point>
</Period> "
I am passing this command in R : getNodeSet(doc = xmlroot,path = 'Period/Point')
and getting this result:
list()
attr(,"class")
[1] "XMLNodeSet"
I was hoping to be able to extract this data into a simple dataframe -- any ideas?
For reference:
class(xmlroot) [1] "XMLInternalElementNode" "XMLInternalNode" "XMLAbstractNode"
When using XPath, you can specify the nodes without using the whole path, like this: "//Point". Check out this great tutorial on manipulating XML files in R.
For your specific example you can use this:
xmlToDataFrame(getNodeSet(xmlRoot, "//Point"))
which returns
position price.amount
1 1 24.20
2 2 24.28
3 3 24.89
4 4 25.64
5 5 26.36
6 6 27.83
... and so on.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.