我正在尝试使用逗号分隔列表[Action,Adventure,Family],并为列表中的每个项目在标记内创建一个新标记。
所需的输出:
<genres>
<genre>Action</genre>
<genre>Adventure</genre>
<genre>Family</genre>
</genres>
我现有的易于使用的代码如下:
root = objectify.fromstring(xml) # genres is an object at this point
.
.
.
for g in self.s.cell(self.r,self.d['Genre']).value.split() :
root.product.genres.genre = g.rsplit(",")
.
.
.
注意:以上for循环所做的就是覆盖单个标签并产生以下结果:
<genres>
<genre>Family</genre> # last member of the list
</genres>
我也尝试了以下内容,它也没有用:
for g in self.s.cell(self.r,self.d['Genre']).value.split() :
genre = objectify.fromstring('<genre />')
genre = g.rstrip(",")
root.product.genres.append(genre)
提前感谢您的协助。
答案 0 :(得分:0)
对于相同的标签,lxml会将它们存储在列表中。试试这个:
root = objectify.fromstring(xml) # genres is an object at this point
n = 0
for g in self.s.cell(self.r,self.d['Genre']).value.split() :
root.product.genres.genre[n] = g.rsplit(",")
n += 1
答案 1 :(得分:0)
感谢您的回复。我想出了另一种方法:
for g in self.s.cell(self.r,self.d['Genre']).value.split() :
genre = et.Element("genre")
genre.text = g.rstrip(",")
root.product.genres.append(genre)