2017-02-04 59 views
0

我一直在尝试创建XML。这样做,我使用XML库R.R将日期时间分配转换为数字[XML]

top = newXMLNode("A") 
newXMLnode("Node1",attrs=c(id=123,dt="2017-01-21 00:00:05"),parent=top) 

这应该创建一个XML作为

<A> 
    <Node1 id="123" dt="2017-01-21 00:00:05"/> 
</A> 

但什么是happenning是存储DT的日期时间来代替,R在内部将其转换为数字和我得到输出

<Node1 id="123" dt="1485043200"/> 

我试图将其转换使用lubridate的年月日()函数,as.posixct(),as.date()。所有这一切都保持日期时间格式正确,但只要我将它分配给某些变化为数字。

> u <- as.POSIXct("2017-01-21 00:00:05",origin="1970-01-01") 
> u 
> "2017-01-21 00:00:05 CST" 
> addAttributes(Node1,xyz=u) 
    <Node1 id="123" dt="1485043200" xyz="1485043200"/> 
+2

将日期时间格式设置为字符串,然后再执行分配。 'strftime(u,“%Y-%m-%d%H:%M:%S%Z”)' – Psidom

+0

请回答我的回答。希望它清除你的疑惑并为你工作! –

+0

[你应该照顾这个](http://stackoverflow.com/help/someone-answers) –

回答

0

解决方法非常简单,你已经做了小错别字。您使用newXMLnode而不是newXMLNode。请通过以下R代码片段:

> top = newXMLNode("A") 
> newXMLNode("Node1",attrs=c(id=123,dt="2017-01-21 00:00:05"),parent=top) 
<Node1 id="123" dt="2017-01-21 00:00:05"/> 
> top 
<A> 
<Node1 id="123" dt="2017-01-21 00:00:05"/> 
</A> 

希望它适合你!

+0

感谢Saurabh13的回应。但问题发生在日期时间对象的分配过程中。我应该在分配之前将日期时间对象转换为字符串。 @Psidom正确指出了它。 – ashubhargave