2

かなり簡単な質問です。文字列を考えると

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>'

では、なぜコマンドが 2 つあるのでしょうか。ElementTree の Python 2.7 ドキュメントで、参照fromstring()に「Same as XML()」というフレーズが含まれていることに気付きました。それが同じなら、なぜそれを含めるのですか?

私が気付いた唯一の違いは、最近のバージョンの Python ではオプションのparser引数が に追加されているが、 には追加されてXML()いないことfromstring()です。なんで?コマンドの動作に微妙な違いがあるのでしょうか、それとも同じように見える 2 つのコマンドがあるのは何らかの理由があるのでしょうか? 便宜上だけですか?

4

1 に答える 1

2

fromstringとまったく同じXMLです。実際、次のように定義されています。

##
# 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

ここでソースを確認できます。機能を補完するものとしてあると思いtostringます。

于 2013-01-09T17:31:15.197 に答える