python - Python - 复制元素的属性并粘贴到另一个文本文件
问题描述
我有一个像这样的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']
使用列表,您可以轻松地将项目写入文件。
推荐阅读
- xamarin.forms - 我对 xamarin.form 和 libvlcsharp 有一个非常奇怪的问题
- visual-studio-code - 为什么在 VSCode 中使用 Julia 内核创建 Jupyter Notebook 时看不到变量?
- wordpress - Google 搜索结果中的标题与 WordPress 中的设置不同
- python - 为什么更改类变量被认为是一种不好的做法?
- performance - 如何调试随机占用 100% CPU 的 Go 程序
- android - 在 SDK 更新到 2.12 并将代码更改为 Null Safety 后 Flutter Release APK 大小翻倍
- typo3 - TYPO3 升级上的 DCE 问题
- algebra - Orange3 如何在距离小部件中获取余弦值
- javascript - 为什么当我尝试通过 post 方法创建新的 mysql 记录时我的服务器崩溃,但当我重新启动它时,它已创建?
- powershell - Powershell 因西里尔字母而窒息