Probleme avec le Xpath

bonjour,

j’essaye d’utiliser Xpath

 REXML::XPath.each(doc, "/transactions/

transaction[RefVendeur=‘2215’]") do |elt|
ref_wexpay = elt
message = “Order #{order_merchant} is confirmed.
#{ref_wexpay}”
end

mais ca ne me retourne rien. Alors que lorsque j’utilise Xpath Tool

http://www.xmlme.com/XpathTool.aspx

Ca marche

voici mon XML

82.127.96.244 0 2007-11-28T14:49:55+01:00 2007-11-28T14:52:14+01:00 29.0 0 W200711FR1231 2215 1 82.127.96.244 0 2007-11-28T14:49:55+01:00 2007-11-28T14:52:14+01:00 1 29.0 0 W200711FR1231 21478 1

Salut,

chez moi, le script suivant fonctionne sans problème :

----------------><8------------------------------------
#!ruby

require ‘rexml/document’
require ‘rexml/xpath’

doc = <<EOXML



82.127.96.244
0
2007-11-28T14:49:55+01:00
2007-11-28T14:52:14+01:00
29.0
0
W200711FR1231
2215
1



82.127.96.244
0
2007-11-28T14:49:55+01:00
2007-11-28T14:52:14+01:00
1
29.0
0
W200711FR1231
21478
1


EOXML

REXML::XPath.each(REXML::Document.new(doc),
“/transactions/transaction[RefVendeur=‘2215’]”) do |elt|
ref_wexpay = elt
puts “Order XXX is confirmed. #{ref_wexpay}”
end
----------------><8------------------------------------

Et cela fonctionne également très bien avec ruby-xpath ;)

Donc, il va falloir nous en dire un peu plus.

De mon côté :

$ uname -a
Darwin Titane.local 9.1.0 Darwin Kernel Version 9.1.0: Wed Oct 31
17:46:22 PDT 2007; root:xnu-1228.0.2~1/RELEASE_I386 i386

$ ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0]

$ ruby -r rexml/rexml -e “puts REXML::VERSION”
3.1.7.1

Greg

2008/2/1, Bolo [email protected]:

c’est vrai … well :frowning:

voici mon code

username = "1027305991" # your wexpay username
password = "WFSYLJWY" # your wexpay password


resp = href = ref_wexpay = "";
#vefiry that request from wexpay


#verify command is valid also in xml
begin
  http = Net::HTTP.new("partenaires.wexpay.com", 443)
  http.use_ssl = true
  http.start do |http|
    #your xml
    req = Net::HTTP::Get.new("/marchands/2/transactions.xml",

{“User-Agent” => "wexpay.com ", “Content-Type” => “application/xml”})
req.basic_auth(username, password)
response = http.request(req)
resp = response.body
end
# XML Document
doc = REXML::Document.new(“resp”)

  REXML::XPath.each(doc, "/transactions/

transaction[RefVendeur=‘02’]") do |elt|
ref_wexpay = elt
message = “Order #{order_merchant} is confirmed.
#{ref_wexpay}”
end
end

render :text => message

Avec ce code j’ai toujours une varaible vide

PS: C’est des codes de démo. tu peux les utiliser

On 1 fév, 09:32, “Gregoire LEJEUNE” [email protected]

Salut,

  http = Net::HTTP.new("partenaires.wexpay.com", 443)
  doc = REXML::Document.new("resp")

le problème est là ! Le resp ne doit pas être entre double côte,
remplace donc ceci :

doc = REXML::Document.new(“resp”)

par cela

doc = REXML::Document.new(resp)

render :text => message

Avec ce code j’ai toujours une varaible vide

Voila…

De rien :wink:

Mais non, tu ne vas pas t’énerver !

2008/2/1, Jean-François Trân [email protected]:

no comment sur le code, sinon je crois que je vais m’énerver…

Pourquoi, c’était une faute de frappe … No Comment
également …

Sinon grégoire dans ma bonne version, étrangement quand je désactive
le https ca marche :frowning: En tout ca je sais que ca ne viens pas de l’
Xpath mais un problème avec l’Https

Merci pour tes répponses

On 1 fév, 10:41, “Gregoire LEJEUNE” [email protected]

Bolo :

  #  XML Document
  doc = REXML::Document.new("resp")

“resp”

no comment sur le code, sinon je crois que je vais m’énerver…

– Jean-François.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)

Re,

quand tu “désactives le https”, c’est à dire ?

Greg

Le 01/02/08, Bolo[email protected] a écrit :

Quand je passe par le protocole http au lieu de https , ca marche.

j’avais lu qu’il avait petit soucis avec certificat ssl et mongrel. Je
vais donc faire un mise à jour de celui.

On 1 fév, 11:38, “Gregoire LEJEUNE” [email protected]