Jump to content
  • 0

Lecture et Import d'un xml


dden
 Share

Question

Bonjour à toutes et à tous

On me demande de voir pour récupérer les données d'un xml.

Je m'y colle donc. Mais je ne comprend pas bien comment est rédigé ce xml. Il n'est pas écrit comme les précédent que j'ai pu traité. ( je débute.. en xml)

Voici donc

<?xml version="1.0" encoding="UTF-8"?>
<XMLOutput>
    <Job Name="2020120118 MACHINTRUC" ImpositionName="IMPO FICHE" SignatureName="3" Side="Back" Separation="Yellow" ProcessName="Prinergy:Final Output:Magnus_800:01-KOMO 01 F39 ISO 21 sept" Date="2021-1-5" ProcessStatus="Warning" User="ARAXI" />
</XMLOutput>

 

Habituellement il y a  <rubrique> donnée </rubrique>

Là, toutes les données sont entre les même crochets

Vous voyez venir la question ...

Comment je fait le xslt pour le lire ?

Merci de votre aide

Cordialement

 

 

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0
il y a 19 minutes, dden a dit :

Là, toutes les données sont entre les même crochets

Bonjour,

J'ai déjà eu cela aussi, avec des XML venant de l'administration. Je ne sais pas si on les appelle «balises XML auto-fermantes», mais ça pourrait être ça.

NB : le pire en l'occurrence, c'est que dans le même fichier XML, pour la même balise, on avait un mélange de :

  • <balise>valeur</balise>
  • et de <balise contenu="valeur" />

(oui, de quoi avoir envie de tuer quelqu'un)  😆

il y a 24 minutes, dden a dit :

Comment je fait le xslt pour le lire ?

J'espère que les confrères proposeront mieux que ça, mais à l'époque, j'avais été obligé de remplacé l'import XML par un import texte simple, et je bouclais ensuite par script dans le XML pour en extraire les valeurs.

Bon courage,

Jérémie

Link to comment
Share on other sites

  • 0

Bonsoir

Merci pour ce retour.

Comme ça me semble bine complexe comma solution, j'ai simplement demandé à avoir une fichier mieux formaté.

et je l'ai reçu. YES 😀

<?xml version="1.0" encoding="UTF-8"?>
<XMLOutput>
<Job Name>"2021070357 Bidule machin"</Job Name>
<ImpositionName>"16P"</ImpositionName>
<SignatureName>"1"</SignatureName>
<Side>"Back"</Side>
<Separation>"Yellow"</Separation>
<ProcessName>"Prinergy:Final Output:Magnus 800 eplle mars 2021:01-KOMO 01 COUCHE mars 2021"</ProcessName>
<Date>"2021-8-12"</Date>
<ProcessStatus>"Warning"</ProcessStatus>
<User>"ARAXI"</User>
</XMLOutput>

On va pouvoir mieux œuvrer...

 

Maintenant il me reste à aller chercher un fichier dont le nom est variable

exemple: 20210812093652031_Yellow_Back_1_Jardin  16P_2021070357 BIDULEMACHINE - Brochure 16p

Comment faire pour que filemaker l'ouvre et le traite alors même qu'il ne connait pas sont nom ?

 

Cordialememnt

 

Link to comment
Share on other sites

  • 0
il y a 54 minutes, dden a dit :

Comment faire pour que filemaker l'ouvre et le traite alors même qu'il ne connait pas sont nom ?

Bonjour,

FM ne connaît pas le nom ni l'emplacement du fichier, mais nous, on le connaît… On peut stocker le chemin et le nom du fichier dans une rubrique ou dans une Source de données externes.

A te lire,

Jérémie

Link to comment
Share on other sites

  • 0

"mais nous, on le connaît"

Bah non car il change tout le temps car commençant par l'hordatage :

20210812093652031_Yellow_Back_1_Jardin  16P_2021070357 BIDULEMACHINE - Brochure 16p

Donc plus variable que le temps ....

Aussi ne connait ton pas le nom du fichier a télécharger importer et enfin supprimer...

casse tête !

 

Link to comment
Share on other sites

  • 0
Le 10/08/2021 à 17:31, dden a dit :

Voici donc

<?xml version="1.0" encoding="UTF-8"?>
<XMLOutput>
    <Job Name="2020120118 MACHINTRUC" ImpositionName="IMPO FICHE" SignatureName="3" Side="Back" Separation="Yellow" ProcessName="Prinergy:Final Output:Magnus_800:01-KOMO 01 F39 ISO 21 sept" Date="2021-1-5" ProcessStatus="Warning" User="ARAXI" />
</XMLOutput>

Habituellement il y a  <rubrique> donnée </rubrique>

Là, toutes les données sont entre les même crochets

Vous voyez venir la question ...

Comment je fait le xslt pour le lire ?

Bonjour,

Rien de plus simple, pour récupérer le contenu d'attributs d'une balise XML en XSL-T on utilise la commande @. Voici donc une feuille de transformation XLS-T pour lire l'XML :

<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:template match="/">

		<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
			<METADATA>
				<FIELD NAME="Name" TYPE="TEXT"/>
				<FIELD NAME="ImpositionName" TYPE="TEXT"/>
				<FIELD NAME="SignatureName" TYPE="TEXT"/>
				<FIELD NAME="Side" TYPE="TEXT"/>
				<FIELD NAME="Separation" TYPE="TEXT"/>
				<FIELD NAME="ProcessName" TYPE="TEXT"/>
				<FIELD NAME="Date" TYPE="TEXT"/>
				<FIELD NAME="ProcessStatus" TYPE="TEXT"/>
				<FIELD NAME="User" TYPE="TEXT"/>							
			</METADATA>
			<RESULTSET >
				<xsl:for-each select="XMLOutput/Job">
					<ROW>
						<COL>
							<DATA>
								<xsl:value-of select="@Name"/>
							</DATA>
						</COL>
						<COL>
							<DATA>
								<xsl:value-of select="@ImpositionName"/>
							</DATA>
						</COL>
						<COL>
							<DATA>
								<xsl:value-of select="@SignatureName"/>
							</DATA>
						</COL>
						<COL>
							<DATA>
								<xsl:value-of select="@Side"/>
							</DATA>
						</COL>
						<COL>
							<DATA>
								<xsl:value-of select="@Separation"/>
							</DATA>
						</COL>
						<COL>
							<DATA>
								<xsl:value-of select="@ProcessName"/>
							</DATA>
						</COL>
						<COL>
							<DATA>
								<xsl:value-of select="@Date"/>
							</DATA>
						</COL>
						<COL>
							<DATA>
								<xsl:value-of select="@ProcessStatus"/>
							</DATA>
						</COL>
						<COL>
							<DATA>
								<xsl:value-of select="@User"/>
							</DATA>
						</COL>
					</ROW>
				</xsl:for-each>
			</RESULTSET>
		</FMPXMLRESULT>


	</xsl:template>
</xsl:stylesheet>

Et en fichier joint source_vers_FMP.xsl

Link to comment
Share on other sites

  • 0

"Rien de plus simple,"

Certes : comme disait Albert, tout est relatif.😀

UN GRAND MERCI DAVID

Reste a savoir comment allez lire un fichier dont on ne connait pas le nom, car celui ci est variable.

En effet, il commence par année, mois, jour, heure , minute ....

Exemple image.png.e346524d0dff57e0e742eb83759c51dd.png

Merci de vos retours si vous avez une idée

Dans mon idée, il me faut le lire, l’importer, et le supprimer. Le tout par un script sur le serveur.

Pour que le lendemain, il n'y ai que les fichiers du jour à importer.

Merci de vos idées.

 

Link to comment
Share on other sites

  • 0
Il y a 15 heures, dden a dit :

Reste a savoir comment allez lire un fichier dont on ne connait pas le nom, car celui ci est variable.
En effet, il commence par année, mois, jour, heure , minute ....

Exemple image.png.e346524d0dff57e0e742eb83759c51dd.png


Dans mon idée, il me faut le lire, l’importer, et le supprimer. Le tout par un script sur le serveur.
Pour que le lendemain, il n'y ai que les fichiers du jour à importer.

Bonjour David,

Pour cela j'utiliserai un plug-in, tel que BaseElementsPlugin (https://docs.baseelementsplugin.com) et sa fonction BE_FileListFolder qui permet de lister le contenu d'un répertoire.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...