Python的ElementTree.XML()和ElementTree.fromstring有什么区别?

时间:2013-01-09 17:21:14

标签: python xml-parsing elementtree

非常直截了当的问题。给出字符串

s = "<blah x='true'><img src='a.jpg' /><a><b></b></a></blah>"

以下两个python命令都会产生相同的输出:

>>> E.tostring(E.fromstring(s))
'<blah x="true"><img src="a.jpg" /><a><b /></a></blah>'
>>> E.tostring(E.XML(s))
'<blah x="true"><img src="a.jpg" /><a><b /></a></blah>'

那为什么要有两个命令呢?我注意到在ElementTree的Python 2.7文档中,fromstring()的引用包含短语“与XML()相同”。所以,如果它是相同的,为什么要包括它?

我注意到的唯一区别是最新版本的Python已将可选的parser参数添加到XML()但不添加到fromstring()。为什么?命令的工作方式是否存在细微的差别,或者为什么有两个命令显然是相同的?这只是为了方便吗?

1 个答案:

答案 0 :(得分:2)

fromstringXML完全相同。事实上,它定义如下:

##
# Parses an XML document from a string constant.  Same as {@link #XML}.
#
# @def fromstring(text)
# @param source A string containing XML data.
# @return An Element instance.
# @defreturn Element

fromstring = XML

您可以查看来源here。我认为它是tostring函数的补充。