<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[使用vscode给microPython上添加第三方库，并测试m5stack上用elementTree库解析xml文件]]></title><description><![CDATA[<p dir="auto">microPython并没有官方的xml解析工具，我在pfalcon/pycopy-lib: Standard library of the Pycopy project, minimalist and light-weight Python language implementation (<a href="http://github.com" target="_blank" rel="noopener noreferrer nofollow ugc">github.com</a>)里找到了精简的elementTree库（可以解析xml文件或者字符串的节点文本，属性等，但是对比完整的ET库并不能生成xml），下载地址pycopy-lib/xml.etree.ElementTree at master · pfalcon/pycopy-lib (<a href="http://github.com" target="_blank" rel="noopener noreferrer nofollow ugc">github.com</a>)；pycopy-lib/xmltok2 at master · pfalcon/pycopy-lib (<a href="http://github.com" target="_blank" rel="noopener noreferrer nofollow ugc">github.com</a>)</p>
<p dir="auto">需要下载两个文件 <a href="http://xmltok2.py" target="_blank" rel="noopener noreferrer nofollow ugc">xmltok2.py</a>，<a href="http://ElementTree.py" target="_blank" rel="noopener noreferrer nofollow ugc">ElementTree.py</a>，</p>
<p dir="auto">在vscode的扩展里搜索   vscode-m5stack-mpy，安装后就可以简单的添加文件，也可以在vscode里直接让m5s直接执行python文件</p>
<p dir="auto">点击下边的  Add M5Stack添加设备，加号新建文件，上箭头上传文件到m5s上，把下载下来的两个py文件上传到设备。 执行</p>
<p dir="auto">import ElementTree as ET</p>
<p dir="auto">dir（ET）</p>
<p dir="auto">如果能显示ET库的方法，证明导入库成功</p>
<p dir="auto">关于ET库的使用方法   (11条消息) Python xml.etree.ElementTree解析XML文件_凯耐的博客-CSDN博客_xml.etree.elementtree</p>
<p dir="auto">这是我个人写的一个例子</p>
<p dir="auto">复制代码<br />
from m5stack import *<br />
from m5ui import *<br />
from uiflow import *<br />
import time</p>
<p dir="auto">setScreenColor(0x222222)</p>
<p dir="auto">xmlString = None<br />
rootTag = None<br />
rootText = None<br />
root01tag = None<br />
root01text = None<br />
root01attrib = None</p>
<p dir="auto">label0 = M5TextBox(23, 33, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)<br />
title0 = M5Title(title="Title", x=3, fgcolor=0xFFFFFF, bgcolor=0x0000FF)<br />
label1 = M5TextBox(23, 61, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)<br />
label2 = M5TextBox(22, 87, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)<br />
label3 = M5TextBox(22, 116, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)<br />
label4 = M5TextBox(25, 151, "Text", lcd.FONT_Default, 0xFFFFFF, rotate=0)</p>
<p dir="auto">lcd.clear()<br />
import ElementTree as ET<br />
xmlString = '&lt;?xml version="1.0"?&gt; &lt;data&gt;     &lt;country name="Liechtenstein"&gt;         &lt;rank&gt;1&lt;/rank&gt;         &lt;year&gt;2008&lt;/year&gt;         &lt;gdppc&gt;141100&lt;/gdppc&gt;         &lt;neighbor name="Austria" direction="E"/&gt;         &lt;neighbor name="Switzerland" direction="W"/&gt;     &lt;/country&gt;     &lt;country name="Singapore"&gt;         &lt;rank&gt;4&lt;/rank&gt;         &lt;year&gt;2011&lt;/year&gt;         &lt;gdppc&gt;59900&lt;/gdppc&gt;         &lt;neighbor name="Malaysia" direction="N"/&gt;     &lt;/country&gt;     &lt;country name="Panama"&gt;         &lt;rank&gt;68&lt;/rank&gt;         &lt;year&gt;2011&lt;/year&gt;         &lt;gdppc&gt;13600&lt;/gdppc&gt;         &lt;neighbor name="Costa Rica" direction="W"/&gt;         &lt;neighbor name="Colombia" direction="E"/&gt;     &lt;/country&gt; &lt;/data&gt;'<br />
lcd.clear()<br />
lcd.print(xmlString, 0, 0, 0xffffff)<br />
wait(2)<br />
lcd.clear()<br />
title0.setBgColor(0x000099)<br />
title0.setTitle('parsing...')<br />
root = ET.fromstring(xmlString)<br />
title0.setTitle('parsing   complete')<br />
rootTag = 0<br />
rootTag = root.tag<br />
label0.setText(str((str('root.tag:') + str(rootTag))))<br />
rootText = 0<br />
rootText  = root.text<br />
label1.setText(str((str('root.text:') + str(rootText))))<br />
root01tag = 0<br />
root01tag = root[0][1].tag<br />
label2.setText(str((str('root[0][1].tag:') + str(root01tag))))<br />
root01text = 0<br />
root01Text  = root[0][1].text<br />
label3.setText(str((str('root[0][1].text:') + str(root01text))))<br />
root01attrib = 0<br />
root01attrib = root[0][1].attrib<br />
label4.setText(str((str('root[0][1].attrib:') + str(root01attrib))))<br />
复制代码<br />
实际运行效果   ，可以看出纯py在micropyhhon上运行还是比较慢的</p>
<p dir="auto">4.69 FhB:/ m5stack添加第三方ET库来解析xml  <a href="https://v.douyin.com/RRVMGCV/" target="_blank" rel="noopener noreferrer nofollow ugc">https://v.douyin.com/RRVMGCV/</a> 覆zhi此链接，打开Douyin搜索，直接观看视频！</p>
]]></description><link>https://community.m5stack.com/topic/3681/使用vscode给micropython上添加第三方库-并测试m5stack上用elementtree库解析xml文件</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 10:45:11 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/3681.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Oct 2021 14:52:09 GMT</pubDate><ttl>60</ttl></channel></rss>