python如何解析xml_如何在python中解析xml?

我必须从XML文档中提取`friendlyName`。

这是我目前的解决方案:

root = ElementTree.fromstring(urllib2.urlopen(XMLLocation).read())

for root.iter(''{urn:schemas-upnp-org:device- 1-0} friendlyName''):

返回child.text

我有更好的方法这样做(可能是任何其他不涉及迭代的方式)?我可以使用XPath吗?

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>我的产品912496

< manufacturer> embedded

< manufacturerurl> http://www.embedded.com

< modeldescription>产品

< modelname>产品

< modelnumber>

< modelurl> http://www.embedded.com

< udn> uuid:93b2abac-cb6a-4857-b891- 002261912496

< servicelist>

< service>

&l t; 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 < br />

< 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> / Even t / 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:网络管理

< 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> < br />

< name> com.sony.Product

< versio n> 1.0.0

< feature>

< name> com.sony.Product.btmrc

< version> 1.0.0

< feature>

< name> com.sony.Product.btmrs

< version> 1.0.0

< div class ="h2_lin">解决方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值