python 中的 xml2array

发布于 2024-12-11 08:10:39 字数 317 浏览 1 评论 0原文

file.xml 包含以下数据结构:

<table>
 <row>
   <x>10</x>
   <t>10:00</t>
</row>
<row>
   <x>20</x>
   <t>10:05</t>
</row>
</table>

我有数百个 x,t 对。我需要绘制 x 与 t 的关系图。 如果您能帮助我解决 python 和 matplotlib 的问题,我将不胜感激。

the file.xml contains the following data structure:

<table>
 <row>
   <x>10</x>
   <t>10:00</t>
</row>
<row>
   <x>20</x>
   <t>10:05</t>
</row>
</table>

I have hundred of x,t pairs. I need to plot x vs. t.
I would be thankful if you can help me to solve the problem with python and matplotlib.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

祁梦 2024-12-18 08:10:39
import lxml.etree as ET
import matplotlib.pyplot as plt

text='''\
<table>
 <row>
   <x>10</x>
   <t>10:00</t>
</row>
<row>
   <x>20</x>
   <t>10:05</t>
</row>
</table>
'''

def convert_t(text):
    a,b=map(float,t.split(':'))
    return a+b/60.0

doc=ET.fromstring(text)
x=[float(x) for x in doc.xpath('//x/text()')]
t=[convert_t(t) for t in doc.xpath('//t/text()')]
plt.plot(x,t)
plt.show()
  • 上面的代码假设 10:05 表示 10 分钟、5
    秒。它使用 convert_t 将其转换为浮点数。
  • 添加结束 以使 XML 有效。
import lxml.etree as ET
import matplotlib.pyplot as plt

text='''\
<table>
 <row>
   <x>10</x>
   <t>10:00</t>
</row>
<row>
   <x>20</x>
   <t>10:05</t>
</row>
</table>
'''

def convert_t(text):
    a,b=map(float,t.split(':'))
    return a+b/60.0

doc=ET.fromstring(text)
x=[float(x) for x in doc.xpath('//x/text()')]
t=[convert_t(t) for t in doc.xpath('//t/text()')]
plt.plot(x,t)
plt.show()
  • The above code assumes 10:05 means something like 10 minutes, 5
    seconds. It converts this to a float using convert_t.
  • A closing </table> was added to make the XML valid.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文