[GastForen Programmierung/Entwicklung FileMaker XML-Dokument in FileMaker importieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

XML-Dokument in FileMaker importieren

Martin_Raabe
Beiträge gesamt: 9

1. Dez 2012, 17:05
Beitrag # 1 von 16
Bewertung:
(11435 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe leider noch absolut keine Erfahrung mit FileMaker, müsste aber dringend ein XML-Dokument importieren. Mittlerweile weiß ich, dass ich dies erst mit XSLT in ein bestimmtes Format transformieren muss. Habe mir auch die Beispiele die FileMaker mitbringt angeguckt. So richtig weiter komme ich leider trotzdem nicht, da ich auch mit XSLT noch nicht ganz soviel zu tun hatte.

Zum einem würde ich gerne mal Wissen für was jeweils die einzelnen XML-Templates in der *.xslt sind?

Zum anderen, kennt jemand einen guten XSLT Online Parser? Hab mal versucht die Beispiele mit den jeweils einzelnen Templates zu parsen. Aber irgendwie kommt da nichts brauchbares raus!?!

Und zu guter Letzt hätte ich das XML-File im Anhang:

http://mrae.bplaced.net/downloads/test_.txt


Ich würde mich freuen wenn mir jemand weiterhelfen könnte und bedanke mich im Voraus!

Martin
X

XML-Dokument in FileMaker importieren

JensTeich
  
Beiträge gesamt: 595

1. Dez 2012, 17:57
Beitrag # 2 von 16
Beitrag ID: #504968
Bewertung:
(11424 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier ein XSLT welches die Adressen in FM importiert

Code
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ot="http://www.opentrans.org/opentrans/1.0/opentrans_order"
version="1.0">
<xsl:template match="/">
<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">
<ERRORCODE>0</ERRORCODE>
<PRODUCT BUILD="" NAME="" VERSION=""/>
<DATABASE DATEFORMAT="M/d/yyyy" LAYOUT="" NAME="" RECORDS="1" TIMEFORMAT="h:mm:ss a"/>
<METADATA>
<!-- In den folgenden Zeilen koennen unter NAME="xxx" die Feldnamen frei gewaehlt werden die
im FM Import Dialog erscheinen. Es sind quasi die Felddefinitionen fuer die FM Daten.
Pro weiterem Importfeld je eine Zeile neu anlegen.
-->
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="NAME" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="STREET" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="ZIP" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="CITY" TYPE="TEXT"/>
</METADATA>
<RESULTSET FOUND="1">
<xsl:for-each select="//ot:ADDRESS">
<ROW MODID="0" RECORDID="0">
<!-- Hier folgen die Infos, woher die Daten aus dem XML Baum kommen sollen. Hinter
dem select-tag steht der Pfad durch den Baum. Hier ist es einfach der Feldname
-->
<COL><DATA><xsl:value-of select="ot:NAME"/></DATA></COL>
<COL><DATA><xsl:value-of select="ot:STREET"/></DATA></COL>
<COL><DATA><xsl:value-of select="ot:ZIP"/></DATA></COL>
<COL><DATA><xsl:value-of select="ot:CITY"/></DATA></COL>
</ROW>
</xsl:for-each>
</RESULTSET>
</FMPXMLRESULT>
</xsl:template>
</xsl:stylesheet>


LG
Jens


als Antwort auf: [#504965]

XML-Dokument in FileMaker importieren

Martin_Raabe
Beiträge gesamt: 9

1. Dez 2012, 20:56
Beitrag # 3 von 16
Beitrag ID: #504970
Bewertung:
(11390 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jens,

vielen Dank für die Antwort! Werd mir das dann gleich mal angucken!

Ach ja, könntest du mir eventuell noch kurz was dazu sagen. In den FileMaker Beispielfiles sind es ja drei Templates, die nacheinander aufgerufen werden.

Lg M


als Antwort auf: [#504968]

XML-Dokument in FileMaker importieren

JensTeich
  
Beiträge gesamt: 595

1. Dez 2012, 21:16
Beitrag # 4 von 16
Beitrag ID: #504971
Bewertung:
(11384 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Die Abarbeitung eines XSLT Stylesheet passiert nicht nur von oben nach unten, sondern nach Templates (Schablonen).

xsl:tempate match="//test"

startet eine Verarbeitung wenn im Quelldokument ein Knoten (Tag) 'Test' gefunden wird.

~Jens


als Antwort auf: [#504970]

XML-Dokument in FileMaker importieren

Martin_Raabe
Beiträge gesamt: 9

2. Dez 2012, 13:34
Beitrag # 5 von 16
Beitrag ID: #504978
Bewertung:
(11317 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jens,

könnte ich bitte nochmal kurz um deine Hilfe bitten? Wie könnte denn ein XSLT aussehen, was wirklich alle in der XML enthaltenen Information in einer relationalen Datenbanktabelle abbildet?

Das Ganze sollte also so aussehen:

http://mrae.bplaced.net/downloads/erg.txt

Komme hier nicht voran...

Martin


als Antwort auf: [#504971]
(Dieser Beitrag wurde von Martin_Raabe am 2. Dez 2012, 13:44 geändert)

XML-Dokument in FileMaker importieren

JensTeich
  
Beiträge gesamt: 595

2. Dez 2012, 19:34
Beitrag # 6 von 16
Beitrag ID: #504981
Bewertung:
(11280 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
'Einfach alles' ist schwierig bis unmöglich.

Das XML ist ein Baum mit 4 Adressen und 2 Positionen (Lineitems).

Eine FM Tabelle hat nur einmal Felder (Spalten) und Datensätze (Zeilen).

Es ist also ersteinmal die Entscheidung gefragt, was die Zeilen bilden soll: Adressen oder Positiionen. Ich habe in obigem XSLT die Adressen gewählt. Vermutllich sind die Positionen gefragt.

Dann schließt sich aber die Frage an, wie mit den 4 Adressen verfahren werden soll?

~Jens


als Antwort auf: [#504978]

XML-Dokument in FileMaker importieren

Martin_Raabe
Beiträge gesamt: 9

2. Dez 2012, 20:17
Beitrag # 7 von 16
Beitrag ID: #504983
Bewertung:
(11268 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Und wie es in der Beispieltextdatei ist geht es nicht? Hier ist ja jede Information einfach nur als Attributwert in jeweils einer Spalte abgelegt.


als Antwort auf: [#504981]

XML-Dokument in FileMaker importieren

JensTeich
  
Beiträge gesamt: 595

2. Dez 2012, 21:04
Beitrag # 8 von 16
Beitrag ID: #504988
Bewertung:
(11255 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Probier es aus in Excel. Ich kann es nicht.


als Antwort auf: [#504983]

XML-Dokument in FileMaker importieren

Martin_Raabe
Beiträge gesamt: 9

2. Dez 2012, 21:59
Beitrag # 9 von 16
Beitrag ID: #504990
Bewertung:
(11234 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
In Excel sieht es ja eben genau so aus, wie in der Datei die ich hochgeladen habe. Hier sind einfach alle Werte in einem Tupel aufgeführt.


als Antwort auf: [#504988]

XML-Dokument in FileMaker importieren

JensTeich
  
Beiträge gesamt: 595

3. Dez 2012, 03:31
Beitrag # 10 von 16
Beitrag ID: #504995
Bewertung:
(11204 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das XML ist aber nicht als Tupel abbildbar, da es ein Baum mit Verzweigungen (4 Adressen und 2 Positionen) ist. Es bräuchte weitere Informationen. Ein möglicher Weg wäre

+ nehme Positionen als Zeilen

+ verwende nur die erste Adresse für alle Zeilen.

Wie sollen die Adressen und Positionen verknüpft werden?


als Antwort auf: [#504990]

XML-Dokument in FileMaker importieren

Martin_Raabe
Beiträge gesamt: 9

3. Dez 2012, 21:37
Beitrag # 11 von 16
Beitrag ID: #505033
Bewertung:
(11157 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jens,

wie könnte denn das XSLT aussehen wenn die Positionen die Zeilen bilden sollen?

Martin


als Antwort auf: [#504995]

XML-Dokument in FileMaker importieren

JensTeich
  
Beiträge gesamt: 595

3. Dez 2012, 22:31
Beitrag # 12 von 16
Beitrag ID: #505036
Bewertung:
(11135 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Code
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ot="http://www.opentrans.org/opentrans/1.0/opentrans_order"
version="1.0">

<xsl:template match="/">

<FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult">

<ERRORCODE>0</ERRORCODE>
<PRODUCT BUILD="" NAME="" VERSION=""/>
<DATABASE DATEFORMAT="M/d/yyyy" LAYOUT="" NAME="" RECORDS="1"
TIMEFORMAT="h:mm:ss a"/>

<METADATA>

<!-- Felddefinitionen fuer die FM Daten. Unter NAME="xxx"
koennen die Feldnamen frei gewaehlt werden, die im FM
Import Dialog erscheinen.

Pro weiterem Importfeld je eine Zeile neu anlegen.
-->

<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="FM_Line_Item_Id" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="FM_Quantity" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="FM_Price_Type" TYPE="TEXT"/>
<FIELD EMPTYOK="YES" MAXREPEAT="1" NAME="FM_Price_Amount" TYPE="TEXT"/>

</METADATA>

<RESULTSET FOUND="1">

<!-- Festlegung, welcher Knoten die einzelnen FM Datensaetze
trennen soll. Hier das Element <ORDER_ITEM>.
-->

<xsl:for-each select="//ot:ORDER_ITEM">

<ROW MODID="0" RECORDID="0">

<!-- Wo finden sich die Daten im XML Baum? Hinter dem
select-tag steht der Pfad durch den Baum.
-->

<COL><DATA><xsl:value-of select="ot:LINE_ITEM_ID"/></DATA></COL>
<COL><DATA><xsl:value-of select="ot:QUANTITY"/></DATA></COL>
<COL><DATA><xsl:value-of select="ot:ARTICLE_PRICE/@type"/></DATA></COL>
<COL><DATA><xsl:value-of select="ot:ARTICLE_PRICE/ot:PRICE_AMOUNT"/></DATA></COL>


</ROW>

</xsl:for-each>

</RESULTSET>

</FMPXMLRESULT>

</xsl:template>

</xsl:stylesheet>



als Antwort auf: [#505033]

XML-Dokument in FileMaker importieren

Martin_Raabe
Beiträge gesamt: 9

3. Dez 2012, 23:27
Beitrag # 13 von 16
Beitrag ID: #505038
Bewertung:
(11116 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So,

jetzt bin ich glücklicherweise ein bisschen weiter. Nun noch zwei Fragen (ich hoffe die Letzten). Wie kann ich ein Element adressieren was ein Attribut und Text enthält, also wie kann ich hier den Attributwert und den Text einzeln adressieren? Und wie integriere ich den Zweig der die Adressen enthält?

Ich hoffe nochmals auf eine Antwort. Vielen, vielen Dank schonmal!


als Antwort auf: [#505036]
(Dieser Beitrag wurde von Martin_Raabe am 3. Dez 2012, 23:39 geändert)

XML-Dokument in FileMaker importieren

Martin_Raabe
Beiträge gesamt: 9

3. Dez 2012, 23:50
Beitrag # 14 von 16
Beitrag ID: #505039
Bewertung:
(11102 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Martin_Raabe ] So,

jetzt bin ich glücklicherweise ein bisschen weiter. Nun noch zwei Fragen (ich hoffe die Letzten). Wie kann ich ein Element adressieren was ein Attribut und Text enthält, also wie kann ich hier den Attributwert und den Text einzeln adressieren? Und wie integriere ich den Zweig der die Adressen enthält?

Ich hoffe nochmals auf eine Antwort. Vielen, vielen Dank schonmal!


Das erste hab ich, war nen Schreibfehler. Jetzt möchte ich "nur" noch alle Adressdaten mit in die beiden Tupel unterbringen...

Werde erstmal nen bisschen "rumspielen". Aber hoffe trotzdem auf eine Antwort.


als Antwort auf: [#505038]

XML-Dokument in FileMaker importieren

JensTeich
  
Beiträge gesamt: 595

4. Dez 2012, 00:25
Beitrag # 15 von 16
Beitrag ID: #505040
Bewertung:
(11091 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Zugreifen auf Attribute geschieht mit '@', das hab ich im Code schon vorgemacht.

Die Adressen erreichst du zB
'/ot:ORDER/ot:ORDER_HEADER/ot:ORDER_INFO/ot:ORDER_PARTIES/ot:BUYER_PARTY/ot:PARTY/ot:ADDRESS/ot:NAME'

~jens


als Antwort auf: [#505038]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!