Voici mon problème. J'appelle un service qui renvoie plusieurs nœuds identiques qui contiennent des valeurs différentes. J'ai besoin d'obtenir les valeurs GUID de ces noeuds et les stocker comme une variable dans mon script pour les utiliser plus tard.Ruby XML: donne des nœuds uniques XML existants à lire
Exemple de XML que j'écris du service:
<ShippingMethod>
<Description>Description Goes Here</Description>
<HandlingCharge>16.98</HandlingCharge>
<ShippingMethodId>GUID</ShippingMethodId>
<ShippingMethodName>Express Overnight</ShippingMethodName>
</ShippingMethod>
<ShippingMethod>
<Description>Description2 Goes Here</Description>
<HandlingCharge>19.98</HandlingCharge>
<ShippingMethodId>GUID2</ShippingMethodId>
<ShippingMethodName>More Express Overnight</ShippingMethodName>
</ShippingMethod>
J'ai plusieurs de ces par demande et ils sont dynamiques. Je ne veux pas couper ça en utilisant regex basé sur les valeurs que j'ai actuellement. C'est hacky et me mordra plus tard. La seule chose qui m'intéresse à ce stade est de lire ce XML et d'extraire toutes les valeurs par requête et de les mettre dans un tableau que je peux mapper dans mon code. Ma question est la suivante: si vous aviez ce morceau de XML et que vous deviez obtenir GUID et GUID2 pour être stockés en tant que variables dans un script Ruby, que suggéreriez-vous d'utiliser pour l'analyser et avez-vous un exemple de lecture et décapage? valeur?
ROXML, REXML, Nokogiri, Regex ???
J'apprécie votre aide!
~ Cordialement Uninspired
Ne pas utiliser regex à moins que le XML est totalement sous votre contrôle et est simple. Un analyseur comme Nokogiri est très simple à utiliser et est beaucoup plus robuste. Imaginez ce qui se passerait si votre XML passait d'un format joli-empreint/indenté à tout sur une seule ligne, et que vous utilisiez regex. Un analyseur ne s'en soucierait pas. –