2017-02-04 55 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