Python - 追加"无"如果XML元素不在Record中,则为Array

时间:2015-11-19 12:29:42

标签: python xml xml-parsing lxml

我在Python中使用lxml来解析XML文件。该文件包含带元素的记录。第一个元素永远存在。但是,其他元素并不总是在每条记录中可用。如果没有元素,我想添加一个"无"进入Elementx列表。当我这样做时,每个元素列表具有相同的大小,并且当前一个列表中不存在新值时,我可以轻松地在for循环中添加新值。我如何追加"无"当元素在记录中不可用时元素列表中的值?

代码如下所示:

Element1_list = []
Element2_list = []
.
.
ElementN_list = []

  def repeat():
    xmlfile = urllib2.urlopen("link.xml").read()
    root = lxml.etree.fromstring(xmlfile)

    # Grabbing the elements from the XML file, list are here not equal in size
    Element1 = root.xpath('//Record/Element1/text()')
    Element2 = root.xpath('//Record/Element2/text()')
    .
    .
    ElementN = root.xpath('//Record/ElementN/text()')

    i = 0
    for element in Element1: 
      if element not in Element1_list: 
        Element1_list.append(Element1[i])
        Element2_list.append(Element2[i])
        .
        .
        ElementN_list.append(ElementN[i])
    i = i + 1
  repeat()

repeat()

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以尝试使用if else。

lst = []
ele1,ele2 = None,'Something'
lst.append( ele1 if ele1 else None )
lst.append( ele2 if ele2 else None )
print lst 
[None, 'Something']