Benutzung von HImportXML

Alle Themen rund um die Erstellung von Programmen
Antworten
FDominicus
Member
Beiträge: 65
Registriert: 9. Mai 2015, 08:19

Benutzung von HImportXML

Beitrag von FDominicus »

Liebe Windev Benutzer, ich versuche mit hIMportXML einige Daten in's windev zu bekommen, werde aber nicht aus der Doku schlaue

Hier mein XML

Code: Alles auswählen

<?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>


Nun gibt es den root Parameter nur
Node of the XML file from which the import will be performed. Used to import a section of the XML file into the HFSQL data file. The type of this parameter is "root/clients".

Ich habe es mit FormatDescript/Fields Versucht nur mit Fields und was weiß ich noch. Was funktioniert ist
<level1>
<level2>
<tag></tag>

Dann werden die Elemente importiert nur in diesem Fall für das was in Format steht ein Record mit den Standardwerten.

Was ich will ist klar ich möchte Was innerhalb "<Field> steht importieren.

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Benutzung von HImportXML

Beitrag von Herbert »

Willkommen!

Ich benutze XMLExtractString. Arbeite also nur mit Variablen.
http://doc.windev.com/?3081017&lang=en- ... 01A210067f
und lese so direkt Werte aus einem XML ein.

Du musst meiner Meinung nach die Befehle verwenden, welche auf ein externes XML benötigt werden.
Das Himportxml liest die Daten in eine Tabelle ein. Dort müssten die Felder entsprechend definiert sein. Diesen Weg empfehle ich nicht unbedingt.

FDominicus
Member
Beiträge: 65
Registriert: 9. Mai 2015, 08:19

Re: Benutzung von HImportXML

Beitrag von FDominicus »

"Das Himportxml liest die Daten in eine Tabelle ein. Dort müssten die Felder entsprechend definiert sein. Diesen Weg empfehle ich nicht unbedingt."

Genau das möchte ich aber. Die XML-Namen sind die Feldnamen und ich hätte gerne die entsprechenden Felder eingetragen Ich willl nicht manuell jedes einzelne Feld Rausnehmen auf
Es handelt sich hier um bis zu 176 oder so Felder und ich habe nicht die Absicht für jedes Feld in XMLExtracString den Tag Namen aufzuführen.

Packe ich die einzelnen Elemente in eigene Dateien passiert genau das gewünschte, die Sachen werden eingelesen und landen an der richtigen Stelle in der Datenbank von da könnte ich Sie "verwenden" um damit die Ausgabe zu formatieren.

Herbert
Site Admin
Beiträge: 529
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Benutzung von HImportXML

Beitrag von Herbert »

OK, habe angenommen, dass du nur einige wenige Werte brauchst.
Hast du kein .XSD-File? So könntest du das Objekt definieren und direkt die Werte wie eine Variable ansprechen.
Das hImport müsste ich mir noch ansehen.

FDominicus
Member
Beiträge: 65
Registriert: 9. Mai 2015, 08:19

Re: Benutzung von HImportXML

Beitrag von FDominicus »

Herbert hat geschrieben:OK, habe angenommen, dass du nur einige wenige Werte brauchst.
Hast du kein .XSD-File? So könntest du das Objekt definieren und direkt die Werte wie eine Variable ansprechen.
Das hImport müsste ich mir noch ansehen.
Nein, das sind self-contained Sachen. Keine Beschreibung die habe ich nur aus der Benutzung gefolgert. Das wäre aber auch nicht schlimm da es nur darauf ankommt die Sachen im Zugriff zu haben. Genau dann könnte ich nämlich über die Felder einen Export schreiben der die Daten dann korrekt in eine ASCII Datei schreibt. Das ist halt das gewollte Format.
Was die Felder bedeuten kann man sich ja "vorstlelen" wenn eben eine Maxlänge vorgegeben ist, muß ich halt beim Schreiben darauf achten, dafür brauche ich die Parameter aber im Zugriff. Ich hatte mir das ganze schon als eine Reihe von Klassen überlegt, nur muß ich dann eben auch den ganzen Import so schreiben, daß ich jedes verd.. Feld mit irgendeinem Ausdruck anfassen muß und das bei bis zu 176 Felder --- Brrrrrrrrr

FDominicus
Member
Beiträge: 65
Registriert: 9. Mai 2015, 08:19

Re: Benutzung von HImportXML

Beitrag von FDominicus »

Zur Informatoin, man muß sich schon an ein einfaches Schema halten, aber wenn man das so hinbekommt geht der Export flott von der Hand. Es zeigt sich mal wieder die Sachen it der Programmmiererei, lieber steckt man 10 Stunden in ein Programm als x x 1 in die manuelle Erfassung. Das Schema was ich so einfach importieren konnte sieht so aus:

Code: Alles auswählen

<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>
Mit der entsprechenden Datenbank funktioniert HImportXML einfach.

Wahrscheinlich käme man mit XPATH Sachen noch weiter, da habe ich mich aber bisher nicht so reingekniet....

Antworten