DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Fonctions HFSQL
  • Mode d'importation
  • Rubriques de type tableau
  • Format du XML attendu
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Importe un fichier XML dans une table au format HFSQL Classic ou Client/Serveur (table décrite sous l'éditeur de schémas des données ou déclarée par les fonctions HDéclare, HDéclareExterne ou HDécritTable).
Exemple
WINDEV
// Importation du fichier "C:\MesFichiers\Client.xml" dans la table Client. 
// Si la table Client existe, cette table sera écrasée (constante hImpCréation)
// Une jauge de progression sera affichée dans le champ JAUGE_Jauge1
HImporteXML(Client, "C:\MesFichiers\Client.xml", hImpCréation, JAUGE_Jauge1)
Syntaxe
<Résultat> = HImporteXML(<Table> [, <Chemin du fichier XML> , <Rubriques destination> [, <Attributs XML à importer>]] [, <Options> [, <Jauge> [, <Noeud racine>]]])
<Résultat> : Booléen
  • Vrai si l'opération a été réalisée,
  • Faux en cas d'erreur. La fonction HErreur permet d'identifier le problème rencontré.
<Table> : Chaîne de caractères
Nom de la table au format HFSQL dans laquelle l'importation doit être réalisée.
<Chemin du fichier XML> : Chaîne de caractères optionnelle
Chemin d'accès complet au fichier XML à importer.
<Rubriques destination> : Chaîne de caractères optionnelle
Liste des noms des rubriques de la table dans laquelle l'importation est effectuée. Les noms peuvent être délimités par des simples quotes et sont séparés par des virgules ou RC. Les noms des rubriques de type clé composée, mémo binaire et de type binaire sont ignorés.
Les rubriques non importées seront initialisées avec leur valeur par défaut décrite dans le schéma des données.
Si ce paramètre n'est pas précisé ou correspond à une chaîne vide, toutes les rubriques sont importées (sauf les clés composées, les rubriques binaire et mémos binaire) dans l'ordre physique de description.
<Attributs XML à importer> : Chaîne de caractères optionnelle
Liste des noms des rubriques du fichier XML à importer.
Si ce paramètre n'est pas précisé ou correspond à une chaîne vide, tous les noeuds du fichier XML sont importés.
<Options> : Constante ou combinaison de constantes de type Entier (optionnelle)
Paramètre le type d'importation à effectuer:
hImpCréationSi la table dans laquelle l'importation est effectuée existe, elle est écrasée.
hImpInterruptibleL'importation peut être interrompue par la touche Echap du clavier.
Si l'importation est interrompue, les enregistrements importés sont conservés dans la table.
hImpNormal
(valeur par défaut)
Si la table d'importation existe déjà, elle est complétée avec les données importées, sinon la table est créée.
<Jauge> : Nom de champ ou de fenêtre optionnel
  • Nom de la fenêtre dans laquelle la jauge doit être affichée
  • Nom du champ de type Jauge affichant la progression.
<Noeud racine> : Chaîne de caractères optionnelle
Noeud du fichier XML à partir duquel l'importation doit être réalisée. Permet d'importer dans la table HFSQL uniquement une partie de la table XML. Ce paramètre est du type "racine/clients".
Remarques
WINDEVHFSQL ClassicHFSQL Client/ServeurProcédures stockées

Mode d'importation

Si la liste des attributs XML est précisée: l'importation recherchera des noeuds XML ayant le même nom que les rubriques.
La table décrite dans le schéma des données contient les rubriques suivantes RUB1, RUB2; ... La table XML devra donc avoir une structure du type ci-dessous:
<FICHIER>
<RUB1>Donnée1</RUB1>
<RUB2>Donnée2</RUB2>
...
</FICHIER>
<FICHIER>
...
Les noms des noeuds du fichier XML qui n'existent pas dans le schéma des données ou ne sont pas donnés dans la liste des rubriques seront ignorés lors de l'importation.
Si la liste des attributs XML n'est pas précisée, la valeur des noeuds XML est mise dans la rubrique de la table HFSQL qui porte le même nom que l'attribut XML.
Exemple: La table décrite dans le schéma des données contient les rubriques suivantes: NOEUD1, NOEUD2, NOEUD3.
Le fichier XML ayant la structure du type ci-dessous, et la liste des rubriques données étant "NOEUD2+NOEUD1":
<ELEMENT1>
<NOEUD1>Donnée1</NOEUD1>
<NOEUD2>Donnée2</NOEUD2>
<NOEUD3>Donnée3<NOEUD3>
...
</ELEMENT1>
<ELEMENT2> ...
'Données1' sera affectée à 'NOEUD2',
'Données2' sera affectée à 'NOEUD1'
'Données3' sera ignorée car la liste des rubriques " NOEUD2+NOEUD1 " ne contient que 2 rubriques.

Rubriques de type tableau

La fonction HImporteXML permet également d'importer des rubriques de type tableau.
Pour cela, il est nécessaire que les éléments du tableau soit contenus dans des balises filles.
Exemple: La table décrite dans le schéma des données contient les rubriques suivantes: RUB1, RUB2, RUBTABLEAU. La rubrique RUBTABLEAU est une rubrique tableau.
La liste des rubriques données étant "RUB1+RUB2+RUBTABLEAU" et le fichier XML ayant la structure ci-dessous:
<FICHIER>
<RUB1>Donnée1</RUB1>
<RUB2>Donnée2</RUB2>
<RUBTABLEAU>
<!-- balises filles -->
<RUBTABLEAU_1>TabDonnée1</RUBTABLEAU_1>
<RUBTABLEAU_2>TabDonnée2</RUBTABLEAU_2>
</RUBTABLEAU>
</FICHIER>
...
'Données1' sera affectée 'RUB1',
'Données2' sera affectée 'RUB2',
'TabDonnée1' sera affectée à 'RUBTABLEAU[1]',
'TabDonnée2' sera affectée à 'RUBTABLEAU[2]'.

Format du XML attendu

La fonction HImporteXML attend un fichier XML utilisant une structure précise.
Exemple:
<racine><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
<record>
<rub1>val</rub1>
<rub2>val</rub2>
</record>
<record>
<rub1>val</rub1>
<rub2>val</rub2>
</record>
</racine>
Ce format est également utilisé par la fonction HExporteXML.
Si votre fichier XML n'utilise pas cette structure, l'importation pourra ne pas être correctement réalisée. Vous obtiendrez par exemple un enregistrement par rubrique.
Classification Métier / UI: Code métier
Composante: wd300hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Not understandable
I'm afraid the documentation is insufficient. The expected Format and usage is not clear. So I have an example for you:
This is the XML Code
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<FormatDescription>
<Format>
<FormatId></FormatId>
<Description></Description>
<Name></Name>
<StandardType></StandardType>
<Importable></Importable>
<Exportable></Exportable>
<DataCategory></DataCategory>
<GroupSeperator />
<DecimalSeperator>,</DecimalSeperator>
<DateFormatExpression>TTMM</DateFormatExpression>
<DateFormatSeperator />
<CurrencySignExpression />
<DirectoryName />
<FileName />
<Version></Version>
<IsDefaultFormat></IsDefaultFormat>
<DataExtendedZone></DataExtendedZone>
</Format>
<Field>
<FieldId>1</FieldId>
<DisplayGroupId>106</DisplayGroupId>
<OrdinalNumber>0</OrdinalNumber>
<Label>DATEV-Format-KZ</Label>
<LabelAlias />
<Importable>1</Importable>
<Exportable>1</Exportable>
<Length>4</Length>
<DecimalPlaces>0</DecimalPlaces>
<FormatType>Text</FormatType>
<Necessary>1</Necessary>
<IsFormatable>0</IsFormatable>
<DecimalsEditable>0</DecimalsEditable>
<GroupingSymbol>1</GroupingSymbol>
<CreditDebitSign>0</CreditDebitSign>
<BaseFieldId>351</BaseFieldId>
<FixedLength>4</FixedLength>
<AddCreditDebitSign>0</AddCreditDebitSign>
<MaxCount>0</MaxCount>
</Field>
<Field>
<FieldId>2</FieldId>
<DisplayGroupId>106</DisplayGroupId>
<OrdinalNumber>1</OrdinalNumber>
<Label>Versionsnummer</Label>
<LabelAlias />
<Importable>1</Importable>
<Exportable>1</Exportable>
<Length>3</Length>
<DecimalPlaces>0</DecimalPlaces>
<FormatType>Zahl</FormatType>
<Necessary>1</Necessary>
<IsFormatable>0</IsFormatable>
<DecimalsEditable>0</DecimalsEditable>
<GroupingSymbol>0</GroupingSymbol>
<CreditDebitSign>0</CreditDebitSign>
<BaseFieldId>352</BaseFieldId>
<FixedLength>1</FixedLength>
<AddCreditDebitSign>0</AddCreditDebitSign>
<MaxCount>0</MaxCount>
</Field>

</FormatDescription>

Now I want to Import the struff in Format into one DataFile and Field stuff into naother. I tried a lot of things with the root node. What happens acutall with this Code:
HImportXML(DatevFieldDescription,"c:\temp\test2.xml ", "", "",hImpCreation, PROGBAR_ImportFromXML)

The stuff below Format is emported with the fields set to some default values.

So how am I supposed to use HImportXML to get just parts from the XML-file?
Friedrich
22 fév. 2017

Dernière modification : 07/12/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale