我遇到了一个问题,不知道怎么解决。我有两种类型的对象,集合和元素,它们有很多属性,我需要把它写到 XML 像一个。
<data>
<collection name="" .../>
<element name="" link="" .../>
</collection>
</data>
每一个集合对象都有一个包含元素的列表 所以我怎么能用一个循环来完成这个任务 在集合列表中遍历集合呢?
谢谢大家的解答!
UPD: 我刚刚用格式化的字符串来写标记,对于这样一个简单的任务,这个方法非常好用。
你可以用一个库来处理这个问题, 但这可能有点矫枉过正. 如果你想试一试,可以看看Python网站上的这个官方教程。https:/docs.python.org3libraryxml.etree.elementtree.html。
你也可以给你想要序列化的元素一个toXMLString()方法,它可以为这个对象生成XML中的表示,并以字符串的形式返回。
在你的循环中调用这个方法,然后写入你的文件。
下面是一个使用SimplifiedDoc的例子。在使用下面的代码之前,你需要安装 simplified_scrapy。 pip install simplified_scrapy
from simplified_scrapy import SimplifiedDoc, req, utils
html = '''
<data>
<collection name="coll">
<element name="ele1" link="link1" .../>
<element name="ele2" link="link2" .../>
</collection>
</data>
'''
doc = SimplifiedDoc(html)
elements = doc.data.collection.elements
print(elements.name)
结果。
['ele1', 'ele2']
下面是更多的例子。https:/github.comyiyedatasimplified-scrapy-demotreemasterdoc_examples。