AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Administrar bases de datos / HFSQL / Funciones HFSQL
  • Tipo de importación
  • Campos de tipo Array
  • Formato del XML esperado
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Importa un archivo XML en un archivo de datos en formato HFSQL Classic o Cliente/Servidor (archivo de datos descrito en el editor de análisis, o declarado por HDeclare, HDeclareExternal o HDescribeFile). Observación: A partir de la versión 19, HFSQL es el nuevo nombre de HyperFileSQL.
Versiones 22 y posteriores
iPhone/iPad Esta función ahora está disponible para aplicaciones iPhone/iPad.
Universal Windows 10 App Esta función ahora está disponible para aplicaciones de la Plataforma universal de Windows.
Versiones 23 y posteriores
WINDEVLinux Esta función ahora está disponible para aplicaciones WINDEV en Linux.
WEBDEV - Código ServidorLinux Esta función ahora está disponible para sitios WEBDEV en Linux.
Ejemplo
WINDEV
// Import "C:\MyFiles\Customer.xml" into Customer data file.
// The Customer data file will be overwritten if it already exists (hImpCreation constant)
// A progress bar will be displayed in PROGBAR_ProgBar1
HImportXML(Customer, "C:\MyFiles\Customer.xml", hImpCreation, PROGBAR_ProgBar1)
Sintaxis
<Result> = HImportXML(<Data file> [, <Path of the XML file> , <Destination items> [, <XML attributes to import>]] [, <Options> [, <Progress Bar> [, <Root node>]]])
<Result>: booleano
  • True si se realizó la operación,
  • False si se produce un error. La función HError permite identificar el problema.
<Data file>: Cadena de caracteres
Nombre del archivo de datos en formato HFSQL en el que se hará la importación.
<Path of the XML file>: Cadena de caracteres opcional
Acceso completo de ruta al archivo XML para importar.
<Destination items>: Cadena de caracteres opcional
Lista de nombres de campos en el archivo de datos al que se realizará la importación. Los nombres se pueden delimitar con comillas simples y separar con comas o retornos de carro (CR). Los nombres de elementos de tipo clave compuesta, memo binario y binario se ignoran.
Los elementos no importados se inicializarán con el valor predeterminado descrito en el análisis.
Si no se especifica este parámetro o corresponde a una cadena vacía, se importan todos los elementos (excepto las claves compuestas, los elementos binarios y los memos binarios) en el orden físico de descripción.
<XML attributes to import>: Cadena de caracteres opcional
Lista de nombres de los elementos que se encuentran en el archivo XML a importar.
Si este parámetro no se especifica o si corresponde a una cadena vacía, se importan todos los nodos de los archivos XML.
<Options>: Constante o combinación de constantes de tipo Integer (opcional)
Configura el tipo de importación a realizar:
hImpBreakableLa importación se puede interrumpir pulsando la tecla Esc del teclado.
Si se interrumpe la importación, los registros importados se conservan en el archivo de datos.
hImpCreationSi el archivo de datos en el que se realizará la importación existe, se sobrescribirá.
hImpNormal
(valor predeterminado)
Si el archivo de datos en el que se realizará la importación ya existe, se completa con los datos importados; de lo contrario, se crea un archivo de datos.
<Progress Bar>: Nombre de control o ventana opcional
  • Nombre de la ventana en la que se mostrará la barra de progreso
  • Nombre del control Barra de progreso.
WEBDEV - Código Servidor Este parámetro no está disponible.
<Root node>: Cadena de caracteres opcional
Nodo del archivo XML desde el que se realizará la importación. Se utiliza para importar una sección de un archivo XML en el archivo de datos HFSQL. El tipo de este parámetro es "root/clients"..
Observaciones
WINDEVWEBDEV - Código ServidorAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenados

Tipo de importación

Si se especifica la lista de atributos XML: la importación encontrará los nodos XML con el mismo nombre que los elementos.
Ejemplo: El archivo de datos descrito en el análisis contiene los siguientes elementos: ÍTEM 1, ÍTEM 2; ... El fichero XML debe tener la siguiente estructura:
<FILE>
<ITEM1>Data1</ITEM1>
<ITEM2>Data2</ITEM2>
...
</FILE>
<FILE>
...
Los nombres de los nodos encontrados en el archivo XML que no existen en el análisis o que no están especificados en la lista de elementos se ignorarán durante la importación.
Si no se especifica la lista de atributos XML, el valor de los nodos XML se incluye en el elemento del archivo de datos HFSQL que se denomina como el atributo XML.
Ejemplo: El archivo de datos descrito en el análisis contiene los siguientes elementos: NODO1, NODO2, NODO3.
El archivo XML tiene el siguiente tipo de estructura y la lista de elementos especificados es "NODE2+NODE1":
<ELEMENT1>
<NODE1>Data1</NODE1>
<NODE2>Data2</NODE2>
<NODE3>Data3</NODE3>
...
</ELEMENT1>
<ELEMENT2>...
Los "Datos1" se asignarán al "NODO2",
Los "Datos2" se asignarán a "NODO1".
'Data3' se ignorará porque la lista de elementos " NODE2+NODE1 " sólo contiene 2 elementos.

Campos de tipo Array

La función HImportXML también permite importar elementos de tipo array.
Para ello, los elementos array deben estar incluidos en las etiquetas hijas.
Ejemplo: El archivo de datos descrito en el análisis contiene los siguientes elementos: ÍTEM1, ÍTEM2, ARRAYITEM. El artículo ARRAYITEM es un artículo de array.
La lista de elementos es "ITEM1+ITEM2+ARRAYITEM" y el archivo XML tiene la siguiente estructura:
<FILE>
<ITEM1>Data1</ITEM1>
<ITEM2>Data2</ITEM2>
<ARRITEM>
<!-- child tags -->
<ARRAYITEM_1>ArrayData1</ARRAYITEM_1>
<ARRAYITEM_2>ArrayData2</ARRAYITEM_2>
</ARRITEM>
</FILE>
...
Datos1' se asignará a 'ITEM1',
Datos2' se asignará a 'ITEM2',
ArrayData1' se asignará a 'ARRAYITEM[ 1]',
'ArrayData2' se asignará a ARRAYITEM[ 2]'.

Formato del XML esperado

HImportXML espera un archivo XML con una estructura específica.
Ejemplo:
<racine><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
<record>
<item1>val</item1>
<item2>val</item2>
</record>
<record>
<item1>val</item1>
<item2>val</item2>
</record>
</root>
Este formato también lo utiliza HExportXML.
Si su archivo XML no utiliza esta estructura, la importación no se realizará correctamente.. Por ejemplo, puedes obtener una Record por cada artículo.
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd290hf.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
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 02 2017

Última modificación: 22/06/2023

Señalar un error o enviar una sugerencia | Ayuda local