weil wenn ich sowas hier mache:
Code: Alles auswählen
ns = "{%s}" % root.nsmap[None]
geht mal gar nix. ich muss aber ns haben um die nodes zu finden jemand eine idee? vielleicht minidom?
Code: Alles auswählen
ns = "{%s}" % root.nsmap[None]
Soweit ich mich erinnern kann unterstützt es durchaus die Clarke-Notation der XML-Namespaces.debian75 hat geschrieben:google unterstützt kein lxml und Element Tree keine Namespaces, sehe ich das richtig?
Code: Alles auswählen
>>> from xm.etree.ElementTree import *
>>> e = XML('<a:test xmlns:a="urn:sma"><a:b a:c="a">Hallo</a:b></a:test>')
>>> print e.find('{urn:sma}b').attrib[QName('urn:sma', 'c')]
a
>>> dump(e)
<ns0:test xmlns:ns0="urn:sma"><ns0:b ns0:c="a">Hallo</ns0:b></ns0:test>
Code: Alles auswählen
1. ns = "{%s}" % root.nsmap[None]
Code: Alles auswählen
2. items.findall(ns + "Item"):
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2007-07-16">
<SearchIndex>Books</SearchIndex></ItemSearchRequest></Request><TotalResults>202</TotalResults><TotalPages>21</TotalPages>
<Items>
<Item><ASIN>3280072026</ASIN>
<DetailPageURL>http://blabla.com</DetailPageURL>
<SalesRank>80350</SalesRank>
<SmallImage><URL>http://ecx.images-amazon.com/images/I/41xH5WePMML._SL75_.jpg</URL></SmallImage>
</Item></Items></ItemSearchResponse>
Code: Alles auswählen
doc.findall("*//{http://webservices.amazon.com/AWSECommerceService/2007-07-16}Item")