擅长:python、mysql、java
<p>最后两个元素标记需要是结束标记,并且您有一个Watts元素而不是一个属性。下面是如何使用你的文件结构。在</p>
<p>Python为此提供了ElementTree库。以下脚本将完成您想要的:</p>
<pre><code>import xml.etree.ElementTree as ET
tree = ET.parse("test.tcx")
tpxns = "http://www.garmin.com/xmlschemas/ActivityExtension/v2"
for watts in tree.iter("{%s}Watts"%tpxns):
watts.text = str(2*int(watts.text))
tree.write("testnew.tcx")
</code></pre>
<p>在这里,我导入ElementTree库并使用一个更简单的名称。parse函数从文件创建一个ElementTree对象。我遍历该文件以找到所有Watts元素(因为这些元素出现在一个名称空间中,我实际上需要查找{<a href="http://www.garmin.com/xmlschemas/ActivityExtension/v2" rel="nofollow">http://www.garmin.com/xmlschemas/ActivityExtension/v2</a>}}Watts,它是我使用字符串格式构建的)。在</p>
<p>当我找到这样的元素时,我将内部文本设置为前一个值的两倍(先转换为int,然后再转换回字符串)。在</p>
<p>最后,我写出新的xml文件。如果我愿意的话,我可以在这里重写原始文件。在</p>
<p>如果您需要做一些更有趣的事情,请查看ElementTree模块的文档。它为处理XML提供了非常强大的工具。如果您需要更多的特性,还有更强大的库(例如,我喜欢lxml)。在</p>