【发布时间】:2015-01-26 00:08:43
【问题描述】:
例如,我们不能手动输入列表:
list = [<element1>, <element2>, <element3>...]
引发错误:
>>> list = [<DOM Text node "u'\n\t'">]
File "<stdin>", line 1
list = [<DOM Text node "u'\n\t'">]
^
SyntaxError: invalid syntax
而我们可以将 XML 解析元素中的元素放入一个列表中,这不会导致任何语法错误。我在列表中列出了一些 XML 元素:
[<DOM Text node "u'\n\t'">,
<DOM Element: APPLE at 0x18a4648>,
<DOM Text node "u'\n\t\n\t'">,
<DOM Element: GOOGLE at 0x18a4968>,
<DOM Text node "u'\n\t\n\t'">,
<DOM Element: LENOVO at 0x18a4b48>,
<DOM Text node "u'\n\t\n\t'">,
<DOM Element: SAMSUNG at 0x18a4be8>,
<DOM Text node "u '\n'">]
效果很好,但是当我手动尝试使用上述元素输入列表时,它会失败。
谁能解释为什么会这样?
【问题讨论】:
-
<DOM Text node "u'\n\t'">是节点的表示,node.__repr__(),它与实际的节点对象不相同,它不没有“字面”表示。该表示本身不是有效的 Python 语法;因此SyntaxError. -
您可以将任何 Python 对象放入列表中。 XML 解析元素是一个 python 对象,你所拥有的是无效的语法。您可能想要创建一个字符串对象。