2012-02-19 192 views
0

與命名空間中找到XPATH我有以下XML:基於屬性的元素

<assets> 
    <asset type="full"> 
     <file_name>WME__HD_2CH_EN_16X9_178_2398_FINAL.mov</file_name> 
    </asset> 
    ... 
</assets> 

我有多個asset塊,所以我需要引用屬性type = "full"。這是我目前必須引用所有這些 -

node.xpath("//t:assets/t:asset/t:file_name/text()", 
      namespaces={'t':'http://apple.com/itunes/importer'}) 

我怎麼會只引用type = "full"資產?

回答

2

您可以[@type="full"]屬性選擇添加到t:asset

node.xpath("//t:assets/t:asset[@type='full']/t:file_name/text()", 
     namespaces={'t':'http://apple.com/itunes/importer'}) 
0
node.xpath("//t:assets/t:asset[@type='full']/t:file_name/text()", 
     namespaces={'t':'http://apple.com/itunes/importer'}) 
1

試試這個

node.xpath("//t:assets/t:asset[@type='full']/t:file_name/text()", 
     namespaces={'t':'http://apple.com/itunes/importer'}) 

@符號用於選擇通過XPath的屬性。

因此,t:asset[@type='full']意味着選擇所有asset元素具有屬性type和值full

看看這裏xpath synatx

相關問題