J'ai un service Web externe, accessible à l'aide d'un appel HTTP (avec des paramètres passés en tant que chaîne de requête), et qui renvoie le résultat au format XML.
Je souhaite utiliser Drupal pour accéder à ce service Web (avec les paramètres souhaités) et afficher le résultat à l'aide de Views.
Il s'agit d'un exemple de requête et du résultat obtenu à partir du service Web que j'utilise.
Requête: http: //localhost/query.php? Cy = in & q = abcd & cat = 22
Résultat:
<?xml version="1.0"?>
<results>
<Jobs>
<Job ID="111">
<Title>Test one</Title>
<Summary>Test one summary</Summary>
<DateUpdated Date="2011-04-04 18:03:00">4/4/2011</DateUpdated>
<Location>
<Country>India</Country>
<City>Delhi</City>
</Location>
<CompanyName>Test Company</CompanyName>
</Job>
<Job ID="222">
<Title>Test two</Title>
<Summary>Test two summary</Summary>
<DateUpdated Date="2011-04-04 18:03:00">4/4/2011</DateUpdated>
<Location>
<Country>India</Country>
<City>Chennai</City>
</Location>
<CompanyName>Test company</CompanyName>
</Job>
</Jobs>
</results>
Le module Flux peut extraire du contenu et le transformer en nœuds. Feeds XPath Parser vous permettra d'analyser le fichier xml et de mapper les balises aux champs. Vous pouvez ensuite utiliser des vues pour afficher le contenu normalement.
la source
Je suis sûr qu'il existe une solution plus élégante, mais je l'ai fait dans le passé avec des flux Twitter et cela fonctionne très bien. Voici mon point de vue:
La deuxième étape peut être réalisée en créant par programmation les instances de nœud:
L'exemple ci-dessus peut sembler un peu déroutant mais ce n'est pas vraiment: j'ai créé un type de contenu "image" qui a un champ personnalisé "image_id". C'est juste un moyen manuel de récupérer l'ID du nœud le plus récemment créé de ce type.
J'espère que cela t'aides!
la source