read/write xml file in php, task
This commit is contained in:
@@ -7,6 +7,10 @@ Wichtige Informationen
|
|||||||
- Wir eventuell nie aktuell sein.
|
- Wir eventuell nie aktuell sein.
|
||||||
- Stundenplan - [Link](https://wvss-mannheim.webuntis.com/WebUntis?school=wvss-mannheim#/basic/timetablePublic/class?date=2025-12-08&entityId=2583)
|
- Stundenplan - [Link](https://wvss-mannheim.webuntis.com/WebUntis?school=wvss-mannheim#/basic/timetablePublic/class?date=2025-12-08&entityId=2583)
|
||||||
|
|
||||||
|
## 11-12-25 - PHP (XML)
|
||||||
|
- XML aus PHP erstellt
|
||||||
|
- CSV Datei in XML Datei konvertiert
|
||||||
|
|
||||||
## 10-12-25 - PHP
|
## 10-12-25 - PHP
|
||||||
|
|
||||||
- Unterrichtsprojekt begonnen:
|
- Unterrichtsprojekt begonnen:
|
||||||
|
|||||||
65
Zweites Jahr/XML/createXmlDocument.php
Normal file
65
Zweites Jahr/XML/createXmlDocument.php
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
error_reporting(E_ALL);
|
||||||
|
ini_set("display_errors", 1);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
|
<personen>
|
||||||
|
<benutzer>
|
||||||
|
<benutzername>maier1</benutzername>
|
||||||
|
<passwort>mXabc123m!</passwort>
|
||||||
|
<vorname>Hubertus</vorname>
|
||||||
|
<nachname>Maier</nachname>
|
||||||
|
<email>maier1@bfpohg.de</email>
|
||||||
|
</benutzer>
|
||||||
|
|
||||||
|
<benutzer> ... </benutzer>
|
||||||
|
</personen>
|
||||||
|
*/
|
||||||
|
|
||||||
|
// create xml docs
|
||||||
|
$xmlDoc = new DOMDocument("1.0", "utf-8");
|
||||||
|
$xmlDoc->formatOutput=true;
|
||||||
|
|
||||||
|
// Root element
|
||||||
|
$xmlRoot = $xmlDoc->createElement("personen");
|
||||||
|
$xmlDoc->appendChild($xmlRoot);
|
||||||
|
|
||||||
|
// first node - benutzer
|
||||||
|
$xmlPerson = $xmlDoc->createElement("benutzer");
|
||||||
|
|
||||||
|
// child node of benutzer: benutzername
|
||||||
|
$xmlBenutzername = $xmlDoc->createElement("benutzername", "Daniel");
|
||||||
|
$xmlPerson->appendChild($xmlBenutzername);
|
||||||
|
|
||||||
|
// child node of benutzer: passwort
|
||||||
|
$xmlPasswort = $xmlDoc->createElement("passwort", "danielISTcool");
|
||||||
|
$xmlPerson->appendChild($xmlPasswort);
|
||||||
|
|
||||||
|
// append node to root
|
||||||
|
$xmlRoot->appendChild($xmlPerson);
|
||||||
|
|
||||||
|
// --- SECOND USER ---
|
||||||
|
// second node - benutzer
|
||||||
|
$xmlPerson = $xmlDoc->createElement("benutzer");
|
||||||
|
|
||||||
|
// child node of benutzer: benutzername
|
||||||
|
$xmlBenutzername = $xmlDoc->createElement("benutzername", "Peter");
|
||||||
|
$xmlPerson->appendChild($xmlBenutzername);
|
||||||
|
|
||||||
|
// child node of benutzer: passwort
|
||||||
|
$xmlPasswort = $xmlDoc->createElement("passwort", "12345");
|
||||||
|
$xmlPerson->appendChild($xmlPasswort);
|
||||||
|
|
||||||
|
// append node to root
|
||||||
|
$xmlRoot->appendChild($xmlPerson);
|
||||||
|
|
||||||
|
// create file
|
||||||
|
$bytes = $xmlDoc->save(__DIR__ . "/personen.xml");
|
||||||
|
var_dump($bytes);
|
||||||
|
|
||||||
|
echo $bytes . "<br>";
|
||||||
|
echo __DIR__;
|
||||||
|
?>
|
||||||
11
Zweites Jahr/XML/personen.xml
Normal file
11
Zweites Jahr/XML/personen.xml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<personen>
|
||||||
|
<benutzer>
|
||||||
|
<benutzername>Daniel</benutzername>
|
||||||
|
<passwort>danielISTcool</passwort>
|
||||||
|
</benutzer>
|
||||||
|
<benutzer>
|
||||||
|
<benutzername>Peter</benutzername>
|
||||||
|
<passwort>12345</passwort>
|
||||||
|
</benutzer>
|
||||||
|
</personen>
|
||||||
36
Zweites Jahr/XML/readXmlDocument.php
Normal file
36
Zweites Jahr/XML/readXmlDocument.php
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
error_reporting(E_ALL);
|
||||||
|
ini_set("display_errors", 1);
|
||||||
|
|
||||||
|
echo "<h1>XML Ausgabe</h1>";
|
||||||
|
|
||||||
|
// load xml file
|
||||||
|
$xmlDoc = new DOMDocument();
|
||||||
|
$xmlDoc->load("personen.xml");
|
||||||
|
|
||||||
|
echo "<h2>Einfach</h1>";
|
||||||
|
|
||||||
|
// simple output
|
||||||
|
echo $xmlDoc->saveXML();
|
||||||
|
|
||||||
|
echo "<hr>";
|
||||||
|
|
||||||
|
echo "<h2>Gesamte Knoten</h1>";
|
||||||
|
|
||||||
|
// output of individual nodes
|
||||||
|
$benutzer=$xmlDoc->getElementsByTagName("benutzer");
|
||||||
|
|
||||||
|
foreach($benutzer as $benutzerDaten){
|
||||||
|
echo "<strong>Person: </strong>".$benutzerDaten->textContent."<br>";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "<hr>";
|
||||||
|
echo "<h2>Element eines Knotens</h1>";
|
||||||
|
// output of an node's element
|
||||||
|
foreach($benutzer as $benutzerDaten){
|
||||||
|
foreach($benutzerDaten->childNodes as $element){
|
||||||
|
if($element->nodeName == "benutzername"){
|
||||||
|
echo "<strong>Person: </strong>".$element->textContent."<br>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
70
Zweites Jahr/aufgaben/csvToXml/convertCSVtoXML.php
Normal file
70
Zweites Jahr/aufgaben/csvToXml/convertCSVtoXML.php
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<h1>CSV -> XML</h1>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
error_reporting(E_ALL);
|
||||||
|
ini_set("display_errors", 1);
|
||||||
|
|
||||||
|
// DOM struktur
|
||||||
|
/*
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<personen>
|
||||||
|
<nr> </nr>
|
||||||
|
<vorname> </vorname>
|
||||||
|
<nachname> </nachname>
|
||||||
|
</personen
|
||||||
|
*/
|
||||||
|
|
||||||
|
// READ CSV FILE
|
||||||
|
$fileCSV = "e2fi2.csv";
|
||||||
|
if(!file_exists($fileCSV)){
|
||||||
|
die("File $fileCSV doesn't exist or not found!");
|
||||||
|
}
|
||||||
|
|
||||||
|
$fp = @fopen($fileCSV, 'r');
|
||||||
|
if(!$fp){
|
||||||
|
die("Error while opening CSV file!");
|
||||||
|
}
|
||||||
|
$header_array =fgetcsv($fp, 0, ";");
|
||||||
|
|
||||||
|
|
||||||
|
print_r($header_array);
|
||||||
|
|
||||||
|
// CREATE XML DOM
|
||||||
|
$xmlDoc = new DOMDocument("1.0", "utf-8");
|
||||||
|
$xmlDoc->formatOutput=true;
|
||||||
|
|
||||||
|
$xmlRoot = $xmlDoc->createElement("data");
|
||||||
|
$xmlDoc->appendChild($xmlRoot);
|
||||||
|
|
||||||
|
|
||||||
|
// FILL XML FILE WITH CSV DATA
|
||||||
|
while(($row_array = fgetcsv($fp, 0, ";")) !== false){
|
||||||
|
// skip emty value
|
||||||
|
if ($row_array === null || $row_array === []) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// create sub elemente
|
||||||
|
$xmlSchueler = $xmlDoc->createElement("schuelerdata");
|
||||||
|
// for the count of elements in a row do this
|
||||||
|
for ($i = 0; $i < count($row_array); $i++){
|
||||||
|
// make sure there is a header to row
|
||||||
|
if (!isset($header_array[$i])){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// get current collumn
|
||||||
|
$column = $header_array[$i];
|
||||||
|
echo "$row_array[$i]<br>";
|
||||||
|
|
||||||
|
// create a new element with name of column and row data
|
||||||
|
$xmlSchuelerDaten = $xmlDoc->createElement($column, $row_array[$i]);
|
||||||
|
$xmlSchueler->appendChild($xmlSchuelerDaten);
|
||||||
|
}
|
||||||
|
// save element
|
||||||
|
$xmlRoot-> appendChild($xmlSchueler);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Save whole XML file
|
||||||
|
$fileXml = "e2fi2.xml";
|
||||||
|
$xmlDoc->save(__DIR__ . "/$fileXml");
|
||||||
19
Zweites Jahr/aufgaben/csvToXml/e2fi2.csv
Normal file
19
Zweites Jahr/aufgaben/csvToXml/e2fi2.csv
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
Nr;Vorname;Nachname
|
||||||
|
1;Noah;Bassmann
|
||||||
|
2;Dawid;Brueller
|
||||||
|
3;Maksim;Dessauer
|
||||||
|
4;Jonas;Gassenhauer
|
||||||
|
5;Klara;Goettinger
|
||||||
|
6;Marc;Hausmueller
|
||||||
|
7;Timo;Heiterberg
|
||||||
|
8;Johannes;Kachelmann
|
||||||
|
9;Konstantin;Matern
|
||||||
|
10;Anna;Manna
|
||||||
|
11;Kamil;Nether
|
||||||
|
12;Tobias;Scholz
|
||||||
|
13;Eric;Schmidt
|
||||||
|
14;Ferdinand;Tetris
|
||||||
|
15;Damien;Tapfer
|
||||||
|
16;Uemit;Toser
|
||||||
|
17;Sebastian;Wenger
|
||||||
|
18;Fabio;Wellenwein
|
||||||
|
93
Zweites Jahr/aufgaben/csvToXml/e2fi2.xml
Normal file
93
Zweites Jahr/aufgaben/csvToXml/e2fi2.xml
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<data>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>1</Nr>
|
||||||
|
<Vorname>Noah</Vorname>
|
||||||
|
<Nachname>Bassmann</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>2</Nr>
|
||||||
|
<Vorname>Dawid</Vorname>
|
||||||
|
<Nachname>Brueller</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>3</Nr>
|
||||||
|
<Vorname>Maksim</Vorname>
|
||||||
|
<Nachname>Dessauer</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>4</Nr>
|
||||||
|
<Vorname>Jonas</Vorname>
|
||||||
|
<Nachname>Gassenhauer</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>5</Nr>
|
||||||
|
<Vorname>Klara</Vorname>
|
||||||
|
<Nachname>Goettinger</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>6</Nr>
|
||||||
|
<Vorname>Marc</Vorname>
|
||||||
|
<Nachname>Hausmueller</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>7</Nr>
|
||||||
|
<Vorname>Timo</Vorname>
|
||||||
|
<Nachname>Heiterberg</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>8</Nr>
|
||||||
|
<Vorname>Johannes</Vorname>
|
||||||
|
<Nachname>Kachelmann</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>9</Nr>
|
||||||
|
<Vorname>Konstantin</Vorname>
|
||||||
|
<Nachname>Matern</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>10</Nr>
|
||||||
|
<Vorname>Anna</Vorname>
|
||||||
|
<Nachname>Manna</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>11</Nr>
|
||||||
|
<Vorname>Kamil</Vorname>
|
||||||
|
<Nachname>Nether</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>12</Nr>
|
||||||
|
<Vorname>Tobias</Vorname>
|
||||||
|
<Nachname>Scholz</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>13</Nr>
|
||||||
|
<Vorname>Eric</Vorname>
|
||||||
|
<Nachname>Schmidt</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>14</Nr>
|
||||||
|
<Vorname>Ferdinand</Vorname>
|
||||||
|
<Nachname>Tetris</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>15</Nr>
|
||||||
|
<Vorname>Damien</Vorname>
|
||||||
|
<Nachname>Tapfer</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>16</Nr>
|
||||||
|
<Vorname>Uemit</Vorname>
|
||||||
|
<Nachname>Toser</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>17</Nr>
|
||||||
|
<Vorname>Sebastian</Vorname>
|
||||||
|
<Nachname>Wenger</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
<schuelerdata>
|
||||||
|
<Nr>18</Nr>
|
||||||
|
<Vorname>Fabio</Vorname>
|
||||||
|
<Nachname>Wellenwein</Nachname>
|
||||||
|
</schuelerdata>
|
||||||
|
</data>
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
||||||
<personen>
|
|
||||||
<benutzer>
|
|
||||||
<benuztername>maier1</benuztername>
|
|
||||||
<passwort>mXabc123m!<passwort>
|
|
||||||
<vorname>Hubertus</vorname>
|
|
||||||
<nachname>Maier</nachname>
|
|
||||||
<email>maier1@bfpohg.de</email>
|
|
||||||
</benutzer>
|
|
||||||
|
|
||||||
<benutzer> ... </benutzer>
|
|
||||||
</personen>
|
|
||||||
*/
|
|
||||||
|
|
||||||
// create xml docs
|
|
||||||
$doc = new DOMDocumnet()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
||||||
Reference in New Issue
Block a user