Python阅读XML Child

时间:2017-01-02 11:32:06

标签: python xml

试图解析这个XML,但我似乎无法弄清楚我哪里出错了。

XML片段:

<thexml timestamp="2017-01-02T10:17:41">
<event="41" date="2017-04-01" id="5543" time="09:30:00" type="seat" link="na"></event>
</thexml>

我正在尝试:

DOMTree = parseString(response.content)
collection = DOMTree.documentElement
selections = collection.getElementsByTagName("event")
for select in selections:
 print "event found"

这似乎可以解决XML中的事件。例如,试图获得这种类型的方式让我感到难以理解。

tags = select.getElementsByTagName("type")

当我使用它时,标签的字符串变为暗示它找到它。但我不确定如何真正阅读孩子的字符串。我一直在尝试变化:

print type.childNodes[0].data
print type.childNodes.data
print type.data

我错过了一些非常明显的东西吗?我解析了一堆XML,但是这种格式让我有点沮丧。会欣赏正确方向的一点。

1 个答案:

答案 0 :(得分:1)

您的xml中仍然存在问题。

以下是修复(以及如何提取相关属性):

In [17]: c = """<thexml timestamp="2017-01-02T10:17:41">
    ...: <event date="2017-04-01" id="5543" time="09:30:00" type="seat" link="na"></event>
    ...: </thexml>
    ...: """
In [18]: DOMTree = parseString(c)
In [19]: collection = DOMTree.documentElement
In [20]: s = collection.getElementsByTagName('event')
In [21]: for e in s:
    ...:     print(e.getAttribute('type'))
    ...:
seat
  

请注意,在您的示例中,typeAttribute(而不是Node)因此您无法使用getElementsByTagName("type"),您需要使用{ {1}}