解析XML,日期格式(pt0h0ms,pt2920h0ms)

2024-06-16 11:39:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用python解析从MS Project 2013导出的xml文件,它包含以下数据:

<TimephasedData>
    <Type>1</Type>
    <UID>4628</UID>
    <Start>2014-09-22T08:00:00</Start>
    <Finish>2015-09-22T08:00:00</Finish>
    <Unit>8</Unit>
    <Value>PT2920H0M0S</Value>
</TimephasedData>
<TimephasedData>
    <Type>1</Type>
    <UID>4628</UID>
    <Start>2015-09-22T08:00:00</Start>
    <Finish>2015-09-23T08:00:00</Finish>
    <Unit>2</Unit>
    <Value>PT8H0M0S</Value>
</TimephasedData>

我不明白pt8h0ms和pt2920h0ms代表什么(TimephasedData)。目前我通过替换字符“T”来解析日期,然后使用strptime


Tags: 文件数据projectuidvaluetypeunitxml
1条回答
网友
1楼 · 发布于 2024-06-16 11:39:52

这是ISO 8601持续时间值。比较使用以下符号的iCal duration data type规范:

Formal Definition

The value type is defined by the following notation:

dur-value  = (["+"] / "-") "P" (dur-date / dur-time / dur-week)
dur-date   = dur-day [dur-time]   
dur-time   = "T" (dur-hour / dur-minute / dur-second)
dur-week   = 1*DIGIT "W"
dur-hour   = 1*DIGIT "H" [dur-minute]
dur-minute = 1*DIGIT "M" [dur-second]  
dur-second = 1*DIGIT "S"
dur-day    = 1*DIGIT "D"

因此PT8H0M0S是持续时间(T)、8小时(8H)、0分钟(0M)、0秒(0S)。(当然,P代表“周期”。在

至少有一个Python包可以处理这些类型的值的转换,例如https://pypi.python.org/pypi/isodate。在

相关问题 更多 >