我有一个像这样的xml文件
<xml>
<canvas id="123">
<child name="somechild" id="1"/>
</canvas>
<canvas id="124">
<child name="somechild" id="2"/>
</canvas>
<canvas id="125">
<child name="somechild" id="3"/>
</canvas>
</xml>
我想复制画布的属性ID的值
基本上是
<canvas id="COPY THIS VALUE">
里面的内容并将它们写在一个新的文本文件中,它将像这样列出所有文件:
123, 1234, 214334, 34234, 34234
感谢您的帮助!
编辑 - - - - -
到目前为止,我已经尝试过从另一个答案中看到的内容,但是它复制了画布ID的整个行,而不是ID内的内容
with open('file.xml') as myfile, open('fileids.xml', 'w') as outfile:
content = myfile.read()
text = re.search(r'canvas id=".*?">', content, re.DOTALL).group()
outfile.write(text)
最佳答案
您可以使用内置的xml.etree.ElementTree
模块:
import xml.etree.ElementTree as ET
xml = ET.fromstring('''<xml>
<canvas id="123">
<child name="somechild" id="1"/>
</canvas>
<canvas id="124">
<child name="somechild" id="2"/>
</canvas>
<canvas id="125">
<child name="somechild" id="3"/>
</canvas>
</xml>''')
print([node.attrib['id'] for node in xml.findall('.//canvas')])
输出:
['123', '124', '125']
使用列表,您可以轻松地将项目写入文件。