Avatar billede jwulff Nybegynder
25. oktober 2008 - 14:20 Der er 6 kommentarer og
1 løsning

Udtræk fra XML fil

Hej Eksperten,

Jeg vil gerne høre om det er muligt at udtrække data vha. PHP fra en XML fil, og hvordan? Idéen er at jeg uploader en XML fil indeholdende dato, navn og email, hvor der så skal sendes en mail ud til alle hvor datoen er lig med dags dato. Det kan være der evt. er en nemmere måde, end at bruge PHP?

XML filen ser således ud:

<?xml version="1.0" encoding="ISO-8859-1"?>
<orders>
  <order>
      <data>
        <orderno>789</orderno>
        <orderdate>07/21/2008 12:35</orderdate>
      </data>
      <customer>
        <name>Navn</name>
        <email>email@email.dk</email>
      </customer>
  </order>
</orders>

Mvh.
Jacob
Avatar billede olebole Juniormester
25. oktober 2008 - 16:08 #1
<ole>

PHP (specielt version 5+) tilbyder udmærkede muligheder for at parse/behandle XML. Tjek php.net  ;o)

/mvh
</bole>
Avatar billede arne_v Ekspert
25. oktober 2008 - 16:12 #2
Det lyder oplagt at bruge XPath til dette.
Avatar billede arne_v Ekspert
25. oktober 2008 - 16:42 #3
Kode snippet:

<?php
$xml = new SimpleXMLElement(file_get_contents('C:\orders.xml'));
$res = $xml->xpath("//orders/order[contains(data/orderdate/text(),'07/21/2008')]");
foreach($res as $n) {
    print "orderno=" . $n->data->orderno . "<br>\n";
    print "orderdate=" . $n->data->orderdate . "<br>\n";
    print "name=" . $n->customer->name . "<br>\n";
    print "email=" . $n->customer->email . "<br>\n";
}
?>
Avatar billede jwulff Nybegynder
26. oktober 2008 - 07:02 #4
Hej Ole og Arne, tak for jeres svar.

Arne -> Det var lige det jeg skulle bruge, smid et svar.

Hvis jeg nu vil sende udtrække alle hvor ordre der er mellem 2 og 3 dage gamle, hvordan gøres det når formatet er "07/21/2008 12:35" ?

/Jacob
Avatar billede arne_v Ekspert
26. oktober 2008 - 16:06 #5
Med det format er det svært at bruge >= så jeg er bange for at du hænger på 2 eller 3
or test.

Og svar.
Avatar billede jwulff Nybegynder
26. oktober 2008 - 23:29 #6
Her har du lidt point :)

Hvad hvis det så kun skulle være 3 dage?
Avatar billede arne_v Ekspert
26. oktober 2008 - 23:51 #7
3 test med or imellem
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation

Nextway Software A/S

Product Configuration Specialist

Netcompany A/S

Managing Architect

Ringkjøbing Landbobank – Nordjyske Bank

Forretningsudvikler til procesoptimering

Lægemiddelstyrelsen

Løsningsarkitekt