需要帮助理解 etree xml for python 使用标签结构
我在理解 python etree 库读取 xml 文件时遇到一些问题。 我对 python 编程很陌生...所以 xml 对我来说有点古怪...
我在文件中有以下 xml 结构:
<sss version="1.2">
<date>2011-09-23</date>
<time>12:32:29</time>
<origin>OPST</origin>
<user></user>
<survey>
<name>Test</name>
<version>2011-09-02 15:50:10</version>
<record ident="A">
<variable ident="10" type="quantity">
<name>v_682</name>
<label>Another question</label>
<position start="23" finish="24"/>
<values>
<range from="0" to="32"/>
</values>
</variable>
<variable ident="11" type="quantity">
<name>v_683</name>
<label>another totally another Question</label>
<position start="25" finish="26"/>
<values>
<range from="0" to="33"/>
</values>
</variable>
<variable ident="12" type="quantity">
<name>v_684</name>
<label>And once more Question</label>
<position start="27" finish="29"/>
<values>
<range from="0" to="122"/>
</values>
</variable>
<variable ident="20" type="single">
<name>v_685</name>
<label>Question with alternatives</label>
<position start="73" finish="73"/>
<values>
<range from="1" to="6"/>
<value code="1">Alternative 1</value>
<value code="2">Alternative 2</value>
<value code="3">Alternative 3</value>
<value code="6">Alternative 4</value>
</values>
</variable>
</record>
</survey>
</sss>
为了读取元素,我开发了一个非常糟糕的循环,它与 etree 的功能不匹配我猜库...
from xml.etree.cElementTree import parse
et = parse(open('scheme.xml','rb'))
root = et.getroot()
for i in range(4):
a= str(root[4][2][i][0].text)
if a.startswith('v'):
print root[4][2][i][1].text
我如何利用标签结构:例如读取“值”标签以将文本附加到列表中?
对我来说,这些 etree 教程很难读...也许有人可以向我展示如何使用基于标签的搜索...?这些循环是如此脆弱...... 非常感谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果文件很小并且您只需要
元素:如果文件很大:
输出
要了解更多信息,请阅读 搜索子元素 和 ElementTree XML API。
If the file is small and you only need
<value/>
elements:If the file is large:
Output
To find out more, read Searching for Subelements and The ElementTree XML API.