2011-11-02 8 views
1

xmlを解析するためにlxmlを使用しています。私はAmazonの商品広告APIから得ました。私はroot.tagまたはroot.child.tagを使用すると、私はいつものようなものを取得lxmlの間違ったタグ名

root=etree.XML(self.sendRequest(parameters)) 

:リンクはタグ名に表示されます

{http://webservices.amazon.com/AWSECommerceService/2005-10-05}RequestProcessingTime 

が実際にある ツリーは次のように解析されますルート要素の属性:

<ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2005-10-05"> 

ただし、正しく解析されていないようです。 タグから迷惑な{...}を取り除く方法はありますか?

答えて

0

中括弧の間の部分はXML名前空間で、要素のxmlns属性から読み取られます。これは、lxmlが基づいている要素木APIがどのように定義されているかということで、これを取り除くことはできません。すべてのタグ名の前には名前空間を中括弧で置きます。

曖昧さを解決するためには、適切な振る舞いをするXMLパーサが必須です。同じタグ名が別の名前空間に異なる意味で表示され、単一のドキュメントに複数の名前空間のタグが含まれる可能性があります。

文書が正しく解析されているため、プログラム内の名前空間を考慮する必要があります。それでおしまい。

関連する問題