2011-09-21 6 views
0

J'utilise nokogiri ruby ​​gem pour analyser XML.ruby ​​xpath nokogiri

<d:abc>19</d:abc> 
<d:def m:type="Edm.Double">0</**d:def> 

supposant entrée est noeud XML Nokogiri, en utilisant au-dessus de l'échantillon xml. Je pourrais facilement obtenir le texte de abc en utilisant entry.xpath. ('D: abc') Texte

Comment obtenir le texte de def?

Merci

+0

Avez-vous assuré que les espaces de noms auxquels les préfixes ' "d:"' et ' "m:"' sont liés, sont enregistrés avec votre moteur XPath? Sinon, vous aurez probablement une erreur. –

+0

salut, mu .. si vous remarquez deuxième élément XML dans l'échantillon est "def" – iwan

+0

Bonjour Dimitre, je n'ai pas eu d'erreur pour , mais je ne peux pas comprendre pour , cela vous dérangerait-il de préciser de quel enregistrement vous parlez? Je reçois le XML de tiers .. donc je n'ai pas beaucoup de flexibilité pour changer le XML – iwan

Répondre

0
require 'nokogiri' 
xml = Nokogiri::XML('<root xmlns:m="bar"><def m:type="Edm.Double" /></root>') 
p xml.at_xpath('//def').attribute('type').text 
#=> "Edm.Double" 
+0

salut Phrogz .. merci, j'ai édité votre réponse et acceptez comme réponse. Merci! – iwan

Questions connexes