PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : xml datein in mysql importieren



Goldfinger
29-10-2010, 12:38
Hi,

ich stehe vor dem Problem das ich eine xml datein in eine mysql importieren muss. Ich möpchte das mittels eines PHP-Scripts erledigen.


Die XML-Datei ist so aufgebaut:



<SATZ>
<NAME>TEST</NAME>
<BESCHREIBUNG>
<OBJECTID>123123</OBJECTID>
<TITEL>ABCDED</TITEL>
</BESCHREIBUNG>
<BESCHREIBUNG>
<OBJECTID>123124</OBJECTID>
<TITEL>ABwewD</TITEL>
</BESCHREIBUNG>
<BESCHREIBUNG>
<OBJECTID>123125</OBJECTID>
<TITEL>ABCDEqweq</TITEL>
</BESCHREIBUNG>
</SATZ>


Mein Problem ist nun das die Beschreibung unterschiedlich oft in einem Satz vorkommen kann.

Hat mir jemand einen Ansatzpunkt?

dml
12-11-2010, 14:39
Es gibt schon vorgefertigte Funktionen zum Parsen von xml unter php
Liste xml funktionen (http://www.php.net/manual/de/ref.xml.php)
Parser für xml Datei (http://www.php.net/manual/de/function.xml-parse.php)

Vor allem die Anleitung von Ashok dot 893 at gmail dot com wird Dein problem lösen:

<?php
function objectsIntoArray($arrObjData, $arrSkipIndices = array())
{
$arrData = array();

// if input is object, convert into array
if (is_object($arrObjData)) {
$arrObjData = get_object_vars($arrObjData);
}

if (is_array($arrObjData)) {
foreach ($arrObjData as $index => $value) {
if (is_object($value) || is_array($value)) {
$value = objectsIntoArray($value, $arrSkipIndices); // recursive call
}
if (in_array($index, $arrSkipIndices)) {
continue;
}
$arrData[$index] = $value;
}
}
return $arrData;
}
?>

Usage:

<?php
$xmlUrl = "feed.xml"; // XML feed file/URL
$xmlStr = file_get_contents($xmlUrl);
$xmlObj = simplexml_load_string($xmlStr);
$arrXml = objectsIntoArray($xmlObj);
print_r($arrXml);
?>