我想拆分一个以分号分隔的字符串,以便我可以使用Python存储每个单独的字符串,以用作XML标记之间的文本。字符串值如下所示:
08-26-2009;08-27-2009;08-29-2009
它们只是存储为字符串值的日期
我想遍历每个值,存储到变量并在最后将变量调用到以下代码中:
for element in iter:
# Look for a tag called "Timeinfo"
if element.tag == "timeinfo":
tree = root.find(".//timeinfo")
# Clear all tags below "timeinfo"
tree.clear()
element.append(ET.Element("mdattim"))
child1 = ET.SubElement(tree, "sngdate")
child2 = ET.SubElement(child1, "caldate1")
child3 = ET.SubElement(child1, "caldate2")
child4 = ET.SubElement(child1, "caldate3")
child2.text = FIRST DATE VARIABLE GOES HERE
child2.text = SECOND DATE VARIABLE GOES HERE
child2.text = THIRD DATE VARIABLE GOES HERE
感谢任何帮助。
答案 0 :(得分:13)
Split返回一个列表,如下所示
>>> a="08-26-2009;08-27-2009;08-29-2009"
>>> a_split = a.split(';')
>>> a_split
['08-26-2009', '08-27-2009', '08-29-2009']
答案 1 :(得分:4)
child2.text, child3.text, child4.text = three_dates_text.split(';')
答案 2 :(得分:3)
当你有名为child1,child2,child3和child4的变量时,这是一种代码气味,暗示你应该使用列表或其他类型的集合。
children = [ET.SubElement(tree, "sngdate")]
children += [ET.SubElement(children[0], "caldate%s" % i) for i in xrange(3)]
四个单独的变量是一个包含四个元素的列表。现在,您可以更新每个项目中的日期:
dates = "08-26-2009;08-27-2009;08-29-2009"
for i, d in enumerate(dates.split(";")):
children[i+1].date = d
即使您事先不知道物品的数量,也可以将其调整为适用于任意数量的物品。