Вам необходимо создать экземпляры vmware_value, vmware_attr и machname как списки, а не как строки, поэтому вместо этого:
vmware_value = None
vmware_attr = None
machname = None
сделать это:
vmware_value = []
vmware_attr = []
machname = []
Затем, чтобы добавить элементы в список, используйте метод append в ваших списках. E.g.:
factory = DocumentBuilderFactory.newInstance();
factory.setValidating(1)
factory.setIgnoringElementContentWhitespace(0)
builder = factory.newDocumentBuilder()
document = builder.parse(xmlFileName)
vmware_value = []
vmware_attr = []
machname = []
# Get the text value for the element with tag name "vmware"
nodeList = document.getElementsByTagName("vmware")
for i in range(nodeList.getLength()):
node = nodeList.item(i)
vmware_attr.append(node.attributes["id"].value)
if node.getNodeType() == Node.ELEMENT_NODE:
children = node.getChildNodes()
for j in range(children.getLength()):
thisChild = children.item(j)
if (thisChild.getNodeType() == Node.TEXT_NODE):
vmware_value.append(thisChild.getNodeValue())
Я также отредактировал код так, что, как мне кажется, он должен работать, чтобы добавить правильные значения в vmware_attr и vmware_value.
Я должен был предположить, что STAX использует синтаксис xml.dom, поэтому, если это не так, вам придется соответствующим образом отредактировать мое предложение.