5

私は Python で XML の構文解析をいじっていましたが、XML タグのスペルを間違えるとExpatError. 私のコードが外国にあるとは思わないのでExpatError、一般的に何を参照しますか?

スペルミスのあるコード:

minidom.parseString("<people><pesron>Dan</person><person>John</person></people>")

結果:

ExpatError                                Traceback (most recent call last)
<ipython-input-5-9c00296c48cb> in <module>()
----> 1 minidom.parseString("<people><pesron>Dan</person><person>John</person></people>")

/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/xml/dom/minidom.pyc in parseString(string, parser)
   1928     if parser is None:
   1929         from xml.dom import expatbuilder
-> 1930         return expatbuilder.parseString(string)
   1931     else:
   1932         from xml.dom import pulldom

/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/xml/dom/expatbuilder.pyc in parseString(string, namespaces)
    938     else:
    939         builder = ExpatBuilder()
--> 940     return builder.parseString(string)
    941 
    942 

/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/xml/dom/expatbuilder.pyc in parseString(self, string)
    221         parser = self.getParser()
    222         try:
--> 223             parser.Parse(string, True)
    224             self._setup_subset(string)
    225         except ParseEscape:

ExpatError: mismatched tag: line 1, column 21
4

1 に答える 1

2

質問へのコメントを要約して展開します。

ExpatErrorexpatがエラーを報告したときに発生する例外のタイプです。expat は、Python 標準ライブラリの XML 解析モジュールです。

minidomドキュメント オブジェクト モデル インターフェイスの Python の最小限の実装である は、呼び出されたときに内部的に expat を使用して XML 入力を解析しますminidom.parseString()

入力 XML のタイプミスにより、<pesron>閉じられていないタグが残っていたため、expat がトリガーされ、ExpatError.

expat という名前の由来については、英語で「expatriate」を指すのではなく、モジュールの説明 ((E)Xml PArser Toolkit) の短縮版です。

于 2021-01-04T09:27:13.603 に答える