Click here to Skip to main content
15,890,557 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I have to extract `friendlyName` from the XML document.

Here's my current solution:

root = ElementTree.fromstring(urllib2.urlopen(XMLLocation).read())
for child in root.iter('{urn:schemas-upnp-org:device-1-0}friendlyName'):
return child.text


I there any better way to do this (maybe any other way which does not involve iteration)? Could I use XPath?

XML content:

<!-- language: lang-xml -->


<root xmlns="urn:schemas-upnp-org:device-1-0">
<specversion>
<major>1
<minor>0

<device>
<dlna:x_dlnadoc xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMR-1.50
<devicetype>urn:schemas-upnp-org:device:MediaRenderer:1
<friendlyname>My Product 912496
<manufacturer>embedded
<manufacturerurl>http://www.embedded.com
<modeldescription>Product
<modelname>Product
<modelnumber>
<modelurl>http://www.embedded.com
<udn>uuid:93b2abac-cb6a-4857-b891-002261912496
<servicelist>
<service>
<servicetype>urn:schemas-upnp-org:service:ConnectionManager:1
<serviceid>urn:upnp-org:serviceId:ConnectionManager
<scpdurl>/xml/ConnectionManager.xml
<eventsuburl>/Event/org.mpris.MediaPlayer2.mansion/RygelSinkConnectionManager
<controlurl>/Control/org.mpris.MediaPlayer2.mansion/RygelSinkConnectionManager

<service>
<servicetype>urn:schemas-upnp-org:service:AVTransport:1
<serviceid>urn:upnp-org:serviceId:AVTransport
<scpdurl>/xml/AVTransport2.xml
<eventsuburl>/Event/org.mpris.MediaPlayer2.mansion/RygelAVTransport
<controlurl>/Control/org.mpris.MediaPlayer2.mansion/RygelAVTransport

<service>
<servicetype>urn:schemas-upnp-org:service:RenderingControl:3
<serviceid>urn:upnp-org:serviceId:RenderingControl
<scpdurl>/xml/RenderingControl2.xml
<eventsuburl>/Event/org.mpris.MediaPlayer2.mansion/RygelRenderingControl
<controlurl>/Control/org.mpris.MediaPlayer2.mansion/RygelRenderingControl

<service>
<servicetype>urn:schemas-embedded-com:service:RTSPGateway:1
<serviceid>urn:embedded-com:serviceId:RTSPGateway
<scpdurl>/xml/RTSPGateway.xml
<eventsuburl>/Event/org.mpris.MediaPlayer2.mansion/RygelRTSPGateway
<controlurl>/Control/org.mpris.MediaPlayer2.mansion/RygelRTSPGateway

<service>
<servicetype>urn:schemas-embedded-com:service:SpeakerManagement:1
<serviceid>urn:embedded-com:serviceId:SpeakerManagement
<scpdurl>/xml/SpeakerManagement.xml
<eventsuburl>/Event/org.mpris.MediaPlayer2.mansion/RygelSpeakerManagement
<controlurl>/Control/org.mpris.MediaPlayer2.mansion/RygelSpeakerManagement

<service>
<servicetype>urn:schemas-embedded-com:service:NetworkManagement:1
<serviceid>urn:embedded-com:serviceId:NetworkManagement
<scpdurl>/xml/NetworkManagement.xml
<eventsuburl>/Event/org.mpris.MediaPlayer2.mansion/RygelNetworkManagement
<controlurl>/Control/org.mpris.MediaPlayer2.mansion/RygelNetworkManagement


<iconlist>
<icon>
<mimetype>image/png
<width>120
<height>120
<depth>32
<url>/org.mpris.MediaPlayer2.mansion-120x120x32.png

<icon>
<mimetype>image/png
<width>48
<height>48
<depth>32
<url>/org.mpris.MediaPlayer2.mansion-48x48x32.png

<icon>
<mimetype>image/jpeg
<width>120
<height>120
<depth>24
<url>/org.mpris.MediaPlayer2.mansion-120x120x24.jpg

<icon>
<mimetype>image/jpeg
<width>48
<height>48
<depth>24
<url>/org.mpris.MediaPlayer2.mansion-48x48x24.jpg


<x_embeddeddevice xmlns:edd="schemas-embedded-com:extended-device-description">
<firmwareversion>v1.0 (4.155.1.15.002)
<features>
<feature>
<name>com.sony.Product
<version>1.0.0

<feature>
<name>com.sony.Product.btmrc
<version>1.0.0

<feature>
<name>com.sony.Product.btmrs
<version>1.0.0




Posted
Updated 16-May-14 5:28am
v2

1 solution

Suggest you to refer python documentation for this

https://docs.python.org/2/library/xml.etree.elementtree.html[^]


All the best:)
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900