我试图编辑XML文件中名为“Volume”的所有标记中的文本,方法是将文本乘以用户输入的数字。“Volume”标签内的文本始终是数字。到目前为止,我的代码还可以工作,但只对“卷”文本的第一个实例有效。在
下面是一个XML示例:
<blah>
<moreblah> sometext </moreblah> ;
<blah2>
<blah3> <blah4> 30 </blah4> <Volume> 15 </Volume> </blah3>
</blah2>
</blah>
<blah>
<moreblah> sometext </moreblah> ;
<blah2>
<blah3> <blah4> 30 </blah4> <Volume> 25 </Volume> </blah3>
</blah2>
</blah>
下面是我的Python代码:
^{pr2}$我知道在我的密码里文档getElementsByTagName('Volume')[0]”表示“Volume”标记的第一个实例,但我只是作为一个测试来测试它是否可以工作。所以我知道代码正按照它应该的方式工作。但是我想知道是否有人有什么建议,或者告诉我将用户输入百分比应用于“Volume”标记的所有实例的最简单方法。在
这也是我在Python上的第一次尝试,所以如果您看到任何其他奇怪的东西,请告诉我。在
谢谢你的帮助!在
如果使用更现代的xmlapi,比如ElementTree(在标准库中)或{a2}(更高级),您会更开心。在
在ElementTree或lxml中,您可以访问XPath(或类似的东西),这允许在XML文档中查找元素和属性时使用更灵活的语法。在
在ElementTree中:
…将找到
Volume
元素的所有匹配项。在如果您坚持使用当前语法,请执行以下操作:
^{pr2}$…你特别要求第零个(第一个)
Volume
。如果你想处理所有这些,你需要一个循环:如果你不熟悉像循环这样的结构,你应该退一步读一本介绍性的编程指南,因为没有一些基础知识,事情会很快变得相当复杂。祝你好运!在
相关问题 更多 >
编程相关推荐