Xml+php

Hallo und guten Tag!

Sitze gerade vor einem wohl kleineren Problem.

Ich habe ein .xml-File und möchte jeden Wert einzeln auslesen, bzw. eventuell weiterspeichern. Da bin ich mir noch nicht so klar.

Das komplette Auslesen ist kein Problem, aber das Aufteilen bzw. das auflisten der Inhalte dieser Datei schon.

Hoffe ich konnte mich klar ausdrücken.

Für Hilfe bin ich dankbar ...

best
 
Unterstützt deine PHP-Installation SimpleXML oder DOM?

Lege einfach ein phpinfo(); Script an und such nach den zwei Bezeichnungen. Wenn du eine von beiden findest, hast du schon fast gewonnen.
 
Die meisten Webserver unterstützen inzwischen DOM oder SimpleXML soweit ich mitbekommen habe.
Aber testen lohnt sich - sonst müsstest du mit stringvergleichen arbeiten, was sehr nervig und unnötig wäre.

PHP:
<?PHP

phpinfo();

?>
 
Warum ein Brett vorm Kopf?

Wenn du einen XML Parser hast, kannst du mittels diesem XML auslesen - problemlos - schau dir einfach die Beispiel meines ersten Links an - mach die einfach mal nach und dann verstehst du was ich meine :)
 
Hi also ich stand vor kurzem vor dem gleichen Problem und zwar wollte ich Rechnerdetails mittels Aida in eine XML auslesen und in einer Mysql DB speichern. Das habe ich so gemacht.


PHP:
					$sql = "SELECT
				  			 rechnerauswahl
				  		  FROM
				  			 users
				  		  WHERE
				  		  	 UserSession = '".session_id()."'
				  		";
						$result = mysql_query($sql) OR die(mysql_error());

						$row = mysql_fetch_array($result);

						$select = $row['rechnerauswahl'];

						$pfad = "Reporte/$select/$select.xml";

				   	if (file_exists("$pfad")) {
					echo "File vohanden";
					echo "<br>";echo "<br>";
					
                                        $xml = simplexml_load_file("$pfad");


					for($num1=1; $num1<12; $num1++){

					echo '<hr>';


					if($num1 < 12){

						echo $group = "Group";
					}else{

						echo $group = "Device";
					}
						echo '<hr>';

					for($num2=0; $num2<8; $num2++){

                                             //Hier wird mit xpath die xml durchsucht am besten                                                      
                                             //am besten schaust du dir mal das simplexml teil an.
 
					@$titles = $xml->xpath("//".$group."[$num1]/Item/Title");
               				@$titles1=$xml->xpath("//".$group."[$num1]/Item/Value");

						@$title = "$titles[$num2]";
						@$value  = "$titles1[$num2]";

						//$row = mysql_fetch_array($result);

						echo "$title\n";
						echo @$value;
						echo '<br>';


						$title = ereg_replace(" ", "_", $titles[$num2]);
						$title = ereg_replace("-", "_", $title);
						$title = ereg_replace("ä", "ae", $title);
						$title = ereg_replace("ä", "ae", $title);

								$sql = "SELECT
											bestandsliste
										FROM
											bestand
										";
							$result = mysql_query($sql) OR die(mysql_error());

								while(@$row = mysql_fetch_array($result)){

								@$version = $row['bestandsliste'];

								if($title == $version){

								@$sql = "UPDATE
											pc
										SET
							$title='".addslashes(htmlspecialchars($value))."'
										WHERE
											Computer = '".$select."'
										";
						@$result = mysql_query($sql) OR die(mysql_error());

								}
							}
						}
					}
				}

Ist vieleicht ein bisschen Unübersichtlich aber schau dir wirklich mal das simplexml ding an.

Hier zb.: http://www.professionelle-softwaree...te_auflage/programming-php.xml.simplexml.html
 
Zuletzt bearbeitet:
Hey, vielen lieben Dank für die Hilfe!

Aber ich blicke da nicht durch. Deswegen hänge ich einfach mal die .xml datei an. Und gehe genauer drauf ein.

Ich möchte eigentlich nur die CData Passagen auslesen ... und diese dann weiterverarbeiten.

Für Tipps bin ich dankbar.

best
 

Anhänge

mit Simple XML zu arbeiten ist wirklich "simpel" ,)

so würd das zB aussehen:

PHP:
<?
$fp         = fopen('20070202LL001718.xml', 'r');
$content    = fread($fp, filesize('20070202LL001718.xml'));
$xml        = new SimpleXMLElement($content);

echo $xml->DJStory->fulltext;
?>
 
Zurück