3

Python の xml.etree.ElementTree.parse() 関数を使用して、WordPress ブログからすべてのコンテンツをエクスポートして作成した XML ファイルを解析しようとしています。しかし、私がそうしようとすると:

import xml.etree.ElementTree as xml
tree = xml.parse('/path/to/file.xml')

次のエラーが表示されます。

  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1183, in parse
tree.parse(source, parser)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 656, in parse
parser.feed(data)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1643, in feed
self._raiseerror(v)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1507, in _raiseerror
raise err
ParseError: unbound prefix: line 189, column 1

XML ファイルの 189 行目は次のとおりです。

<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blogname.wordpress.com/osd.xml" title="blog name" />

Android 開発でこのエラーが発生することについて多くの質問を見てきましたが、それが私の状況に当てはまるかどうか、またどのように当てはまるかはわかりません。誰でもこれを手伝ってもらえますか?

4

3 に答える 3

8

これがばかげて明らかだったすべての人に謝罪しますが、ドキュメントに「atom」の名前空間定義がなかっただけです。「バインドされていないプレフィックス」とは、プレフィックス「アトム」が名前空間定義に「バインド」されていなかったことを意味していると思いますか?

とにかく、上記の定義を追加すると問題が解決しました。WordPress が使用するすべての名前空間を適切に定義せずに XML ファイルをエクスポートするのはなぜかと思いますが...

于 2012-09-14T05:27:01.520 に答える
1

すべての名前空間を削除すると、まったく問題なく動作します。

変化する

<s:home>USA</s:home>

<home>USA</home>
于 2016-12-02T11:46:43.273 に答える