XML bestanden combineren naar één XML

Pagina: 1
Acties:
  • 2.794 views

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Renman
  • Registratie: Oktober 2018
  • Laatst online: 24-01-2019
Beste formleden, ik zit met het volgende. Hoe combineer ik meerdere XML bestanden naar één XML bestand?
Dit is namelijk het geval, ik mag elke dag één zip bestand downloaden waarin verschillende XML projecten verwerkt zitten, het aantal kan per dag verschillen. Deze XML projecten moeten dan samengevoegd worden om binnengehaald te worden met WP All Import voor Wordpress. Hebben jullie een idee hoe ik dit het beste kan aanpakken?

Alle reacties


Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 16-06 13:21

MAX3400

XBL: OctagonQontrol

Even simpel gedacht:

type 1.xml >> total.xml
type 2.xml >> total.xml
type 3.xml >> total.xml

En dan total.xml importeren?

[ Voor 14% gewijzigd door MAX3400 op 23-10-2018 10:00 ]

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • 0 Henk 'm!

  • Renman
  • Registratie: Oktober 2018
  • Laatst online: 24-01-2019
Beste MAX3400,

ja, dat is wat ik bedoel. Alleen ik ben vrij nieuw met XML, hoe ga ik hier te werk?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
MAX3400 schreef op dinsdag 23 oktober 2018 @ 09:59:
Even simpel gedacht:

type 1.xml >> total.xml
type 2.xml >> total.xml
type 3.xml >> total.xml

En dan total.xml importeren?
Dat gaat niet werken ;) (Althans, niet als je een geldig XML bestand wil overhouden)
Als de XML files een Doctype XML declaration hebben heb je halverwege je document een nieuw doctype XML declaration. En zelfs al hadden ze dat niet; een XML document mag maar 1 root hebben.

@Renman Je kunt XML documenten niet "zomaar" combineren naar één. Al helemaal niet als er aan schema validatie gedaan wordt. Dus daar komt wel enige logica/intelligentie aan te pas in je software als je XML documenten wil samenvoegen. Hoe precies, dat is afhankelijk van de situatie; het is zelfs mogelijk dat 't in jouw geval niet kan. Je zult dus, op z'n minst, moeten aangeven waar 't hier om gaat en (stukjes) relevante(!) XML moeten tonen willen we hier uberhaupt iets zinnigs op kunnen zeggen.

Verder wijs ik je graag op onze Quickstart want, zoals je daar zult lezen, er ontbreekt nogal e.e.a. aan je topicstart. Dus het zou fijn zijn als je die aanvult met de ontbrekende zaken ;)

[ Voor 52% gewijzigd door RobIII op 23-10-2018 11:24 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

Waarom moet het in één bestand zitten?

Je kan heel moeilijk doen door van elk bestand de root te pakken en dat in een nieuw bestand te zetten (met een nieuwe root) maar als je toch elk bestand al gaat parsen kan je toch net zo goed de bestanden los verwerken?

Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 16-06 13:21

MAX3400

XBL: OctagonQontrol

@RobIII eens dat een XML meer is dan "plaintext" maar zoals je zelf ook bevestigt, missen we wat concrete info.

Je doet correct (of net niet) dat de XML een daadwerkelijk format/valide indeling heeft. En dat lijkt me ietwat voorbarig. Je kan "alles" pipen of desnoods hernoemen naar XML.

Aangezien WP All Import onder andere gebruik kan maken van custom fields, is het misschien zelfs handiger om niet de spreekwoordelijke vis maar hengel te verstrekken; allicht kan dan met 1 of 2 custom imports altijd alle XML worden geimporteerd, ongeacht of het 1 file of 2000 files per dag worden. :)

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • 0 Henk 'm!

  • Kettrick
  • Registratie: Augustus 2000
  • Laatst online: 12:07

Kettrick

Rantmeister!

MAX3400 schreef op dinsdag 23 oktober 2018 @ 11:05:

Je doet correct (of net niet) dat de XML een daadwerkelijk format/valide indeling heeft. En dat lijkt me ietwat voorbarig. Je kan "alles" pipen of desnoods hernoemen naar XML.
Nee, een geldig XML bestand heeft een header gevolgd door content. Meerdere bestanden aan elkaar plakken levert geen geldige XML op tenzij de invoer ongeldig is ( geen header heeft ). Hernoemen kan al helemaal niet, tenzij je SVG of XHTML bedoeld ;)

Je kan ook een tool als deze gebruiken om je XML om te vormen : https://yq.readthedocs.io/en/latest/

Ik heb je json variant (jq) vele malen gebruikt als redmiddel in zulke situaties.

[ Voor 14% gewijzigd door Kettrick op 23-10-2018 11:28 ]


Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 16-06 13:21

MAX3400

XBL: OctagonQontrol

Kettrick schreef op dinsdag 23 oktober 2018 @ 11:25:
[...]


Nee, een geldig XML bestand
Stap eens buiten je framework. Ik kan een jpg hernoemen naar xml. Ik kan een printjob naar een xml bestand dumpen.

Dat het niet "geldig" is voor de frameworks: eens.

Of het geimporteerd / batch-import kan worden in applicatie X: weten we allebei niet.

Dat is wat ik wil duiden; niet dat ik niet weet hoe een XML eruit kan/mag zien.

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • +2 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
MAX3400 schreef op dinsdag 23 oktober 2018 @ 11:57:
Stap eens buiten je framework. Ik kan een jpg hernoemen naar xml. Ik kan een printjob naar een xml bestand dumpen.
Stap jij eens even terug: hoe is dat allemaal relevant hier? En, met de karige, ietsiepietsie, informatie die we van @Renman hebben gehad zouden we er op z'n minst van uit mogen gaan dat de XML valid is.
(Je zou zélfs kunnen argumenteren dat je iets pas een XML file kan noemen als het een valide XML document is; is het dat niet dan is het gewoon een tekstfile (met een .xml extensie)).

My point being: Je kunt nu wel helemaal esoterisch gaan maar laten we even uitgaan van een "normale situatie".
Maar daarmee maak je 't voor iemand die zegt:
Renman schreef op dinsdag 23 oktober 2018 @ 10:15:
Alleen ik ben vrij nieuw met XML
...nou niet bepaald duidelijker. Je schopt alleen maar verwarring :>

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Renman
  • Registratie: Oktober 2018
  • Laatst online: 24-01-2019
@RobIII Ooh, ik zie dat ik wat stappen ben vergeten, sorry hiervoor. Ik zal het in het vervolg jullie checklist respecteren.

Ik raak een beetje de draad kwijt, jongens, mijn expertise in XML is niet bepaald hoog te noemen. Ik was al blij dat ik een 'losse' XML bestand kan inladen in WP All Import plugin. En dit was dan ook mijn denk fout, ik dacht namelijk dat WP All Import meerder XML bestanden tegelijk kan binnenhalen van een zip-bestand.

Dit gaat nu goed:
1object.xml wordt binnengehaald in een Wordpress website met WP All Import, doormiddel van custom fields worden de gegevens geplaatst in de template. Wat wordt binnengehaald zijn afbeeldingen, pdf-bestanden, teksten over het object.

Bij de leverancier van het zip-bestand mag ik deze binnen 24 uur maar één keer downloaden.
Het vervelende is natuurlijk dat ik met 1object.xml niet ver kom. Dus wat ik dacht was om op dag 1 het zip-bestand te downloaden, de losse XML bestanden (1object.xml, 2object.xml, 3object.xml, ect) samen te voegen in één enkele xml-bestand. en deze een dag, later binnen te halen in WP All Import.

Acties:
  • 0 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

Renman schreef op dinsdag 23 oktober 2018 @ 12:15:
@RobIII

Bij de leverancier van het zip-bestand mag ik deze binnen 24 uur maar één keer downloaden.
Het vervelende is natuurlijk dat ik met 1object.xml niet ver kom. Dus wat ik dacht was om op dag 1 het zip-bestand te downloaden, de losse XML bestanden (1object.xml, 2object.xml, 3object.xml, ect) samen te voegen in één enkele xml-bestand. en deze een dag, later binnen te halen in WP All Import.
Maar waarom moet je ze samenvoegen? Je download de zip, pakt het uit, slaat het lokaal op en vervolgens importeer je lokaal elk XML bestand.

Acties:
  • 0 Henk 'm!

  • Tanne1
  • Registratie: December 2015
  • Laatst online: 11-06 18:42
Kan er niet via een cron op verschillende tijdsintervallen meerdere xml's aangeroepen worden?

Dus zeg:
type1.xml om 00:15 uur
type2.xml om 00:30 uur
enz.

Misschien dat je via de GUI maar 1 cron kan instellen (ik ben niet bekend met WP All Import), maar kan zou je zelfs via je hosting cron handmatig meerdere cron regels kunnen aanmaken.

Edit: Typo's

[ Voor 3% gewijzigd door Tanne1 op 23-10-2018 13:35 ]


Acties:
  • 0 Henk 'm!

  • Renman
  • Registratie: Oktober 2018
  • Laatst online: 24-01-2019
@Tanne1 Ik denk het niet, de namen die de xml bestanden meekrijgen worden random gegenereerd voor het zip-bestand. Je moet denken aan namen zoals 2712727.xml en 2700902.xml, ik weet dus niet van tevoren welke xml namen(nummers) in deze zip zitten.

Acties:
  • 0 Henk 'm!

  • MrSenne
  • Registratie: Maart 2012
  • Laatst online: 02-07 11:06
Maar de vraag is nog steeds, waarom moeten ze samengevoegd worden?

Acties:
  • 0 Henk 'm!

  • Tanne1
  • Registratie: December 2015
  • Laatst online: 11-06 18:42
Renman schreef op dinsdag 23 oktober 2018 @ 16:16:
@Tanne1 Ik denk het niet, de namen die de xml bestanden meekrijgen worden random gegenereerd voor het zip-bestand. Je moet denken aan namen zoals 2712727.xml en 2700902.xml, ik weet dus niet van tevoren welke xml namen(nummers) in deze zip zitten.
Dit zou je kunnen oplossen met een script om je bestanden logisch te hernoemen, zie voor een voorbeeld onderstaande.
https://unix.stackexchang...-mass-rename-with-counter

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Tanne1 schreef op dinsdag 23 oktober 2018 @ 18:03:
[...]


Dit zou je kunnen oplossen met een script om je bestanden logisch te hernoemen, zie voor een voorbeeld onderstaande.
https://unix.stackexchang...-mass-rename-with-counter
Ik begrijp eigenlijk juist dat de leverancier de bestanden genereert/produceert en dat je dus weinig in de melk te brokkelen hebt qua bestandsnamen.

Maar ik vind 't eigenlijk wel welletjes geweest, @Renman . Er is niets dan verwarring en onduidelijkheid. Dus ik stel voor dat je gewoon even een nieuw topic opent met daarin wél meteen alle relevante(!) informatie die we nodig hebben om je te kunnen helpen. Zoals eerder aangegeven; hanteer dan even onze Quickstart. Hou daarnaast in je achterhoofd dat we niet op je scherm kunnen meekijken noch helderziend zijn; dus voorzie ons van alle, nogmaals, relevante(!) informatie in de topicstart en zorg dat we niet alles stukje-bij-beetje uit je hoeven trekken zoals 't in dit topic loopt. Je ziet wat daar van komt ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.