Простейшая работа:
import libxml2 doc=libxml2.parseDoc(content) a=doc.xpathEval('/kml/Response/name') print ((a[0].content))
Работа с учётом namespace:
import libxml2 doc=libxml2.parseDoc(content) xp = doc.xpathNewContext() xp.xpathRegisterNs("kml2", "http://earth.google.com/kml/2.0") a=xp.xpathEval('/kml2:kml/kml2:Response/kml2:name') print ((a[0].content))
Данный пример работает для следующего xml-файла:
<kml xmlns="http://earth.google.com/kml/2.0"><Response> <name>1600 pennsylvania ave washington dc</name> <Status> <code>200</code> <request>geocode</request> </Status> <Placemark id="p1"> <address>1600 Pennsylvania Ave NW, Washington D.C., DC 20500, USA</address> <AddressDetails Accuracy="8" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"><Country><CountryNameCode>US</CountryNameCode><CountryName>USA</CountryName><AdministrativeArea><AdministrativeAreaName>DC</AdministrativeAreaName><SubAdministrativeArea><SubAdministrativeAreaName>District of Columbia</SubAdministrativeAreaName><Locality><LocalityName>Washington D.C.</LocalityName><Thoroughfare><ThoroughfareName>1600 Pennsylvania Ave NW</ThoroughfareName></Thoroughfare><PostalCode><PostalCodeNumber>20500</PostalCodeNumber></PostalCode></Locality></SubAdministrativeArea></AdministrativeArea></Country></AddressDetails> <ExtendedData> <LatLonBox north="38.9002436" south="38.8939484" east="-77.0333974" west="-77.0396926" /> </ExtendedData> <Point><coordinates>-77.0365191,38.8976964,0</coordinates></Point> </Placemark> </Response></kml>
Свежие комментарии