online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Reavermaster vom 18.07.2020, 12:54 Options

xml-Datei auslesen und in tabelle darstellen

Ich habe eine xml-Datei mit folgendem Inhalt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sccdata [
<!ELEMENT sccdata (description,row*)>
<!ELEMENT description (column*)>
<!ELEMENT column (#PCDATA)>
<!ATTLIST column
col_ref CDATA #REQUIRED
dict_ref CDATA #IMPLIED
data_type CDATA #IMPLIED
unit CDATA #IMPLIED
data_size CDATA #IMPLIED
data_precision CDATA #IMPLIED
>
<!ELEMENT row (item*)>
<!ELEMENT item (#PCDATA)>
<!ATTLIST item
key CDATA #REQUIRED
value CDATA #IMPLIED
>
]>
<sccdata>
<description>
<column col_ref="timestamp" dict_ref="timestamp" data_type="T" unit="" data_size="4" data_precision="1"/>
<column col_ref="inverter_id" dict_ref="inverter_id" data_type="J" unit="" data_size="4" data_precision="1"/>
<column col_ref="serialnumber" dict_ref="serialnumber" data_type="C" unit="" data_size="32" data_precision="1"/>
<column col_ref="status" dict_ref="status" data_type="J" unit="" data_size="4" data_precision="1"/>
<column col_ref="dc_power" dict_ref="dc_power" data_type="J" unit="W" data_size="4" data_precision="1"/>
<column col_ref="power" dict_ref="power" data_type="J" unit="W" data_size="4" data_precision="1"/>
<column col_ref="day_yield" dict_ref="day_yield" data_type="J" unit="kWh" data_size="4" data_precision="0.001"/>
<column col_ref="temperature" dict_ref="temperature" data_type="J" unit="°C" data_size="4" data_precision="1"/>
<column col_ref="status1" dict_ref="status1" data_type="J" unit="" data_size="4" data_precision="1"/>
<column col_ref="dc1_voltage" dict_ref="dc1_voltage" data_type="J" unit="V" data_size="4" data_precision="0.1"/>
<column col_ref="dc1_current" dict_ref="dc1_current" data_type="J" unit="A" data_size="4" data_precision="0.01"/>
<column col_ref="dc1_power" dict_ref="dc1_power" data_type="J" unit="W" data_size="4" data_precision="1"/>
<column col_ref="ac1_voltage" dict_ref="ac1_voltage" data_type="J" unit="V" data_size="4" data_precision="0.1"/>
<column col_ref="ac1_current" dict_ref="ac1_current" data_type="J" unit="A" data_size="4" data_precision="0.01"/>
<column col_ref="ac1_power" dict_ref="ac1_power" data_type="J" unit="W" data_size="4" data_precision="1"/>
<column col_ref="status2" dict_ref="status2" data_type="J" unit="" data_size="4" data_precision="1"/>
<column col_ref="dc2_voltage" dict_ref="dc2_voltage" data_type="J" unit="V" data_size="4" data_precision="0.1"/>
<column col_ref="dc2_current" dict_ref="dc2_current" data_type="J" unit="A" data_size="4" data_precision="0.01"/>
<column col_ref="dc2_power" dict_ref="dc2_power" data_type="J" unit="W" data_size="4" data_precision="1"/>
<column col_ref="ac2_voltage" dict_ref="ac2_voltage" data_type="J" unit="V" data_size="4" data_precision="0.1"/>
<column col_ref="ac2_current" dict_ref="ac2_current" data_type="J" unit="A" data_size="4" data_precision="0.01"/>
<column col_ref="ac2_power" dict_ref="ac2_power" data_type="J" unit="W" data_size="4" data_precision="1"/>
<column col_ref="status3" dict_ref="status3" data_type="J" unit="" data_size="4" data_precision="1"/>
<column col_ref="dc3_voltage" dict_ref="dc3_voltage" data_type="J" unit="V" data_size="4" data_precision="0.1"/>
<column col_ref="dc3_current" dict_ref="dc3_current" data_type="J" unit="A" data_size="4" data_precision="0.01"/>
<column col_ref="dc3_power" dict_ref="dc3_power" data_type="J" unit="W" data_size="4" data_precision="1"/>
<column col_ref="ac3_voltage" dict_ref="ac3_voltage" data_type="J" unit="V" data_size="4" data_precision="0.1"/>
<column col_ref="ac3_current" dict_ref="ac3_current" data_type="J" unit="A" data_size="4" data_precision="0.01"/>
<column col_ref="ac3_power" dict_ref="ac3_power" data_type="J" unit="W" data_size="4" data_precision="1"/>
</description>
<row>
<item key="timestamp" value="2008-07-17 12:00:00" />
<item key="inverter_id" value="1" />
<item key="serialnumber" value="1" />
<item key="status" value="3" />
<item key="dc_power" value="94" />
<item key="power" value="54" />
<item key="day_yield" value="4.891" />
<item key="temperature" value="23" />
<item key="status1" value="3" />
<item key="dc1_voltage" value="462.1" />
<item key="dc1_current" value="0.21" />
<item key="dc1_power" value="94" />
<item key="ac1_voltage" value="231.8" />
<item key="ac1_current" value="0.27" />
<item key="ac1_power" value="54" />
<item key="status2" value="0" />
<item key="dc2_voltage" value="0" />
<item key="dc2_current" value="0" />
<item key="dc2_power" value="0" />
<item key="ac2_voltage" value="0" />
<item key="ac2_current" value="0" />
<item key="ac2_power" value="0" />
<item key="status3" value="0" />
<item key="dc3_voltage" value="0" />
<item key="dc3_current" value="0" />
<item key="dc3_power" value="0" />
<item key="ac3_voltage" value="0" />
<item key="ac3_current" value="0" />
<item key="ac3_power" value="0" />
</row>


Wie man sich denken kann wiederholten sich die Daten nur mit anderen Werten und nem anderen Timestamp.

Meine Frage nun: Kann mir wer helfen diese Datei per php(xsl) auszuwerten und in ner tabelle mit überschriften auszugeben?

Ist wirklich dringend da das Unternehmen in dem ich arbeite diese Daten online stellen will und zwar so schnell wie möglich.

Vielen Dank im vorrau,
R


Antwort schreiben

Antwort 1 von Computerfreaki vom 18.07.2020, 13:47 Options

Hier ist mal der Anfang für dein Projekt:
http://homepage-total.de/php/xml-datei.php

Antwort 2 von Computerfreaki vom 18.07.2020, 13:48 Options

Und hier findest du was für fortgeschrittene:
http://www.drweb.de/php/php-xml.shtml

Antwort 3 von Reavermaster vom 21.07.2020, 13:55 Options

Ja das ist ja alles gut und schön ... ist ja nicht so das ich danach nicht schon selbst gesucht hätte aber das problem ist das bei den meisten xml-dateien die werte so stehen:

<bezeichnung>WERT</bezeichnung>

damit wäre es einfach alles auszulesen ... aber bei mir ist es halt so das das alles so da steht:

<item key="bezeichnung" value="WERT" />

Und ich brauche halt den WERT ... jemand ne idee wie man das verwirklichen könnte?

Antwort 4 von son_quatsch vom 21.07.2020, 14:33 Options

Wenn es dir nur um die Werte geht, hilft dir evt. folgender Code weiter:

<?php

	$h1= fopen( 'xml.xml', 'r' ) or die( 'Konnte Datei nicht öffnen' );
	$sDatei;
	while ( !feof( $h1) ) $sDatei.= fgets( $h1, 4096 );
	fclose( $h1 );

	preg_match_all( '#key="([^"]+)"[^v]*value="([^"]*)"#i', $sDatei, $aValue );

	echo '<table>';
	for ( $i1= 0; $i1< count( $aValue[1] ); $i1++ ) echo '<tr>
		<td>'. $aValue[1][$i1]. '</td>
		<td>'. $aValue[2][$i1]. '</td>
	</tr>';
	echo '</table>';

?>

Antwort 5 von Reavermaster vom 21.07.2020, 15:22 Options

Ja es geht mit in der Hinsicht um die Werte das ich damit später auch arbeiten will ... es wird halt ne auswertung für ne photovoltaik-anlage auf dem dach der lagerhalle des unternehmens. heißt also auch den gesamtbetrag berechnen hinsichtlich leistung usw.

also wäre gut wenn der das in arrays auseinanderpflücken würde oder sowas in der art ... ein array pro timestamp oder sowas ...

ich habe leider noch zu viel anderes zu tun als das ich mich komplett auf dieses projekt einschießen könnte. deswegen bitte ich ja um eure hilfe :-) .

Schon mal vielen herzlichen dank für die antworten.

Antwort 6 von Reavermaster vom 21.07.2020, 15:37 Options

Ja es geht mit in der Hinsicht um die Werte das ich damit später auch arbeiten will ... es wird halt ne auswertung für ne photovoltaik-anlage auf dem dach der lagerhalle des unternehmens. heißt also auch den gesamtbetrag berechnen hinsichtlich leistung usw.

also wäre gut wenn der das in arrays auseinanderpflücken würde oder sowas in der art ... ein array pro timestamp oder sowas ...

ich habe leider noch zu viel anderes zu tun als das ich mich komplett auf dieses projekt einschießen könnte. deswegen bitte ich ja um eure hilfe :-) .

Schon mal vielen herzlichen dank für die antworten.

Antwort 7 von Computerfreaki vom 21.07.2020, 17:12 Options

Und wenn du die XML-Datei einfach lokal ausliest und dann mit PHP in die MySQL-Tabelle einträgst

Hier ist ne Anleitung:
http://www.uzi-web.de/parser/parser_toc.htm

Ähnliche Themen

RSS Feeds erstellen
TByte  17.02.2009 - 3670 Hits - 2 Antworten

id auslesen aus tabelle
Schnuki1904  16.04.2007 - 72 Hits - 1 Antwort

Variablen in einer Datei auslesen
Mel  18.08.2007 - 40 Hits - 2 Antworten

Wert aus Tabelle auslesen
fufufu  19.12.2007 - 184 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026