Avatar billede lurup Ekspert
31. august 2016 - 00:17 Der er 35 kommentarer og
1 løsning

XML

Hvordan får jeg lagt data op på en hjemmeside som jeg henter fra en web service ?? evt med refresh hver min.
Det kan se sådan ud

<Menuer Status="ok">
<Menu>
<Ugedag>onsdag</Ugedag>
<Dato>31-08-2016</Dato>
<Tekst>
Svenskpølseret m/ pasta & salatbar & flute.. Vegetar: Kikærtegryde m/ pasta
</Tekst>
</Menu>
</Menuer>
Avatar billede arne_v Ekspert
31. august 2016 - 02:18 #1
Det mest oplgate var vel:

hente program son kalder web service og gemmer data i database

hjemme side som genererer HTML udfra data i database
Avatar billede lurup Ekspert
31. august 2016 - 02:29 #2
ja

Kan du hjælpe med at skrive det ??
Avatar billede arne_v Ekspert
31. august 2016 - 02:49 #3
Bruger du PHP server side?
Avatar billede lurup Ekspert
31. august 2016 - 21:35 #4
Hej

Ja det gør jeg
PHP & MySQL
WordPress-installer
Avatar billede lurup Ekspert
02. september 2016 - 21:36 #5
Venter spændt på om der kommer noget.

God weekend
Avatar billede arne_v Ekspert
03. september 2016 - 05:48 #6
Altsaa du:
- henter XML
- smider XML ind i et SimpelXML objekt
- itererer over dette og outputter som du vil have det

Umiddelbart virker det ret ligetil.

Hvor koerer du fast?
Avatar billede lurup Ekspert
03. september 2016 - 11:23 #7
Ville ønske jeg kunne få lavet en side jeg efter følgende kunne arbejder videre med.

Har pt ikke noget .
Siden skal hente data og vise det på en side som jeg selv vil lave layout på.

Vil gerne sende url til din mail adresse.

allanurup@gmail.com
Avatar billede lurup Ekspert
03. september 2016 - 12:32 #8
Det kunne meget nemt være noget som dette.
Jeg mangler bare hvordan jeg henter data fra Web service

http://www.xmlfiles.com/examples/tryit.asp?filename=note

<html>
<head>

<script language="JavaScript"
for="window" event="onload">

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
nodes = xmlDoc.documentElement.childNodes
to.innerText = nodes.item(0).text
from.innerText = nodes.item(1).text
header.innerText = nodes.item(2).text
body.innerText = nodes.item(3).text

</script>

<title>HTML using XML data</title>
</head>

<body bgcolor="yellow">
<h1>Refsnes Data Internal Note</h1>

<b>To: </b><span id="to"></span>

<br>
<b>From: </b><span id="from"></span>

<hr>
<b><span id="header"></span></b>

<hr>
<span id="body"></span>

</body>
</html>
Avatar billede lurup Ekspert
04. september 2016 - 01:25 #9
Kommet lidt videre

Hvorfor sker der ikke noget her ???

<!DOCTYPE html>
<html>
<body>

<script>
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  { // IE 5/6
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","https://dhe.skoleplan.skoleit.dk/SPService.asmx?op=DagensMenu",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

var x=xmlDoc.getElementsByTagName("produkt");

for (i=0;i<x.length;i++){

        document.write(x[i].getElementsByTagName("Tekst")[0].childNodes[0].nodeValue);
        document.write("<br/>");
        document.write(x[i].getElementsByTagName("pris")[0].childNodes[0].nodeValue);
        document.write("<br/>");
        document.write(x[i].getElementsByTagName("beskrivelse")[0].childNodes[0].nodeValue);
        document.write("<br/><hr/>");
   
   
}
   
</script>

</body>
</html>
Avatar billede lurup Ekspert
04. september 2016 - 01:28 #10
Tror denne er lidt bedre med viser ikke noget

<!DOCTYPE html>
<html>
<body>

<script>
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
else
  { // IE 5/6
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","https://dhe.skoleplan.skoleit.dk/SPService.asmx/DagensMenu",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

var x=xmlDoc.getElementsByTagName("produkt");

for (i=0;i<x.length;i++){

        document.write(x[i].getElementsByTagName("Ugedag")[0].childNodes[0].nodeValue);
        document.write("<br/>");
        document.write(x[i].getElementsByTagName("pris")[0].childNodes[0].nodeValue);
        document.write("<br/>");
        document.write(x[i].getElementsByTagName("beskrivelse")[0].childNodes[0].nodeValue);
        document.write("<br/><hr/>");
   
   
}
   
</script>

</body>
</html>
Avatar billede arne_v Ekspert
04. september 2016 - 02:29 #11
Jeg er mere til server side PHP end til client side JavaScript.


<?php
$cli= new SoapClient('https://dhe.skoleplan.skoleit.dk/SPService.asmx?WSDL');
$res = $cli->__soapCall('DagensMenu',array());
$xmlstr = $res->DagensMenuResult->any;
$simple = simplexml_load_string($xmlstr);
$text = $simple->Menu->Tekst;
echo $text;
?>


outputter:

Stegt kyllingelår m/ pasta, tomatsovs, salat - varm æblekage m/ creme
Vegetar: rødbedebøf
Avatar billede arne_v Ekspert
04. september 2016 - 02:29 #12
Snasket skyldes bare UTF-8.
Avatar billede arne_v Ekspert
04. september 2016 - 02:49 #13
Hvis du ikke har noget at bruge SOAP til - og ihvertfald for dagens menu ser det ikke ud til at give noget ekstra, saa kan du bruger plain GET.


<?php
$simple = simplexml_load_file('https://dhe.skoleplan.skoleit.dk/SPService.asmx/DagensMenu');
$text = $simple->Menu->Tekst;
echo $text;
?>
Avatar billede lurup Ekspert
04. september 2016 - 13:01 #14
Virkelig dejlig arbejder du har lavet her ...

Syntes kun jeg ser dette

Menu->Tekst; echo $text; ?>
Avatar billede olsensweb.dk Ekspert
04. september 2016 - 14:00 #15
>Syntes kun jeg ser dette
>Menu->Tekst; echo $text; ?>

når den visse php code kunne det tyde på at php ikke er started.
slå error_reporting og display error til, (skal du altid have under udvikling)
måske anvender du short_open_tag.
måske er din server ikke started / coden afvikles fra serveren

eksemplerne i #11, og #13 virker, og skriver dagens ret ud

personligt er jeg mere til coden i #13
Avatar billede lurup Ekspert
04. september 2016 - 14:17 #16
Er det ikke rigtig at gemme filen som index.html ??? og uploade den ?? ellers skal den gemmes som index.php
Avatar billede lurup Ekspert
04. september 2016 - 14:22 #17
FEDT.....
Glem lige sidste besked

Nu virker det 100 %....så dejlig.
Hvordan laver jeg layout om ?? skrift str, placering ??
Avatar billede arne_v Ekspert
04. september 2016 - 15:39 #18
Helt normalt HTML og CSS.
Avatar billede olsensweb.dk Ekspert
04. september 2016 - 16:24 #19
#17: kan ikke siges kortere end i #18

hvis der altid er en vegetar ret kunne man lave en explode på vegetar, og få derved adskilt kødretter fra vegetar retter

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>demo</title>

        <style type="text/css">
        #dagensret{
            font-size:30px;           
        }
        .food{
            color: green;
        }       
        </style>
       
    </head>
    <body>
<?php
// 11
// remember to remove the ; from the beginning of extension=php_soap.dll in php.ini
$cli= new SoapClient('https://dhe.skoleplan.skoleit.dk/SPService.asmx?WSDL');
$res = $cli->__soapCall('DagensMenu',array());
$xmlstr = $res->DagensMenuResult->any;
$simple = simplexml_load_string($xmlstr);
$text = $simple->Menu->Tekst;
echo "dagens ret er ";
echo $text."<br>";
?>


<?php
// 13
$simple = simplexml_load_file('https://dhe.skoleplan.skoleit.dk/SPService.asmx/DagensMenu');
$text = $simple->Menu->Tekst;
$ugedag = $simple->Menu->Ugedag;
$dato = $simple->Menu->Dato;
echo "<br>dagens ret ". $ugedag . " d. ". $dato . " er<br>";
echo "<span id='dagensret'>".$text."</span><br>";


$ar = explode("Vegetar", $text );
echo "Kød spisere  : <span class='food'>". $ar[0]. "</span><br>";
echo "vegetare  <span class='food'>" . $ar[1]. "</span>";
?>   
    </body>
</html>
Avatar billede lurup Ekspert
04. september 2016 - 17:54 #20
TAK....er bare så glad for de 2 herre her......lige ved at være godt her.
Hvordan laver jeg ugedag med stort ??

$dato = $simple->Menu->Dato;
echo "<br>DAGENS RET ". $ugedag . " d. ". $dato . " er<br>";
echo "<span id='dagensret'>".$
."</span><br>";
Avatar billede olsensweb.dk Ekspert
04. september 2016 - 18:12 #21
hvis det kun er første bogstav så anvend ucfirst
http://php.net/manual/en/function.ucfirst.php

echo "<br>DAGENS RET ". ucfirst($ugedag) . " d. ". $dato . " er<br>";


hvis det er hele stringen så anvend strtoupper
http://php.net/manual/en/function.strtoupper.php

echo "<br>DAGENS RET ". strtoupper($ugedag) . " d. ". $dato . " er<br>";
Avatar billede lurup Ekspert
04. september 2016 - 22:31 #22
Hej igen

Ø er med lille i søndag under ugedag ?
Avatar billede arne_v Ekspert
04. september 2016 - 22:56 #23
Virker mb_strtoupper i.s.f. strtoupper?
Avatar billede arne_v Ekspert
04. september 2016 - 23:07 #24
Med hensyn til SOAP saa er SOAP wrapperen i det her tilfaelde bare ren overhead.

Men hvis der er operationer som kraever komplekse argumenter, saa kan SOAP vaere meget nemmere end den simple GET.
Avatar billede lurup Ekspert
04. september 2016 - 23:35 #25
Tak..
mb_strtoupper virker

Har problemer med at ændre skrift str her i ordet Vegetare

echo "Vegetare <span class='food'>" . $ar[1]. "</span>";
Avatar billede arne_v Ekspert
05. september 2016 - 00:33 #26
Du skal have et eller andet tag omkring ordet med en class. span var en oplagt mulighed.
Avatar billede lurup Ekspert
05. september 2016 - 00:46 #27
Det bliver bedre og bedre takker være jeres hjælp

Hvordan henter jeg data omkring køkkenvagterne ???
https://dhe.skoleplan.skoleit.dk/SPService.asmx

Det er under AktuelleAktiviteter
Her skal jeg skrive kokkenvagt og efter vælge  invoke
Avatar billede arne_v Ekspert
05. september 2016 - 01:55 #28

<?php
$cli= new SoapClient('https://dhe.skoleplan.skoleit.dk/SPService.asmx?WSDL');
$res = $cli->__soapCall('AktuelleAktiviteter',array('aktivitetsNavn' => 'kokkenvagt'));
$xmlstr = $res->AktuelleAktiviteterResult->any;
$simple = simplexml_load_string($xmlstr);
foreach($simple->Aktivitet as $aktivitet) {
    echo $aktivitet->Navn . ' ' . $aktivitet->Klasse . "\r\n";
}
?>
Avatar billede arne_v Ekspert
05. september 2016 - 01:58 #29

<?php
$simple = simplexml_load_file('https://dhe.skoleplan.skoleit.dk/SPService.asmx/AktuelleAktiviteter?aktivitetsNavn=kokkenvagt');
foreach($simple->Aktivitet as $aktivitet) {
    echo $aktivitet->Navn . ' ' . $aktivitet->Klasse . "\r\n";
}
?>
Avatar billede lurup Ekspert
05. september 2016 - 22:46 #30
Hej

Tilbage ved pc.....s

Er det mulig at lave linie skift efter hver linie ( navn kl)

Bent 9a
Svend 7e
Avatar billede arne_v Ekspert
05. september 2016 - 22:57 #31
Selvfoelgelig er det det.

Det laver du bare med noget HTML. En tabel eller en liste eller gode gamle <br>.
Avatar billede lurup Ekspert
05. september 2016 - 23:03 #32
Det får jeg ikke mulighed for her ??
de kommer alle på engang

<?php
$simple = simplexml_load_file('https://dhe.skoleplan.skoleit.dk/SPService.asmx/AktuelleAktiviteter?aktivitetsNavn=kokkenvagt');
foreach($simple->Aktivitet as $aktivitet) {
    echo $aktivitet->Navn . ' ' . $aktivitet->Klasse . "\r\n";
Avatar billede arne_v Ekspert
05. september 2016 - 23:12 #33
Du aendrer jo bare den echo til at outputte de HTML tags omkring data som du oensker.
Avatar billede lurup Ekspert
05. september 2016 - 23:55 #34
Hvordan kan jeg lave så der kun kommer en linie ?
Avatar billede lurup Ekspert
06. september 2016 - 01:06 #35
Håber der kan komme lidt hjælp....

Synter ikke jeg kan lave så der kommer et navn med klasse efter
linieskift
Navn med klasse
Avatar billede lurup Ekspert
07. september 2016 - 23:19 #36
1000 tak for hjælpen her til jer begge..

TAK
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

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