Anzeige - [Hier werben / Mediadaten]
(?) Tags raten (?) (edit)
 
Reply to this topicStart new topicStart Poll
> Tool, welches XML Datei in CSV Datei umwandelt
Shopping
Geschrieben am: Mo 2.05.2005, 17:50
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Marketing (Mod)
Beiträge: 1843
Mitglied seit: 11.12.2003


Kennt jemand ein Tool, welches Produktdaten, die als XML-Datei vorliegen, in eine CSV-Datei umwandelt?


--------------------
Bei Pligg, da verdient jeder mit! - Neuanmeldungen jetzt wieder moeglich!

Das Schweizer Shopping Portal seit 1999

Gratis - alles, was es im Internet gratis gibt
Top
PMEmail PosterUsers Website
Top
 
 
Outman
#2 Geschrieben am: Di 3.05.2005, 09:34 (+15:43)
Report PostQuote Post

AyomRank 4
********

Gruppe: Member (aktiv)
Beiträge: 53
Mitglied seit: 7.01.2004


QUOTE (Ivo Gasser @ Mo 2.5.2005, 17:50)
Kennt jemand ein Tool, welches Produktdaten, die als XML-Datei vorliegen, in eine CSV-Datei umwandelt?

Hallo,

hier kannst das verwenden.
CODE
<?php
class MagpieRSS {
var $parser;
var $current_item = array();
   var $items   = array();
var $channel  = array();
var $parent_field = array('RDF');
var $current_field = '';
var $current_namespace = false;
function MagpieRSS ($source) {
 $this->parser = xml_parser_create( );
 xml_set_object( $this->parser, &$this );
 xml_set_element_handler($this->parser, 'start_element', 'end_element');
 xml_set_character_data_handler( $this->parser, 'cdata' );
 xml_parse( $this->parser, $source );
 xml_parser_free( $this->parser );
}
function start_element ($p, $element, &$attrs) {
 $element  = strtolower( $element );
 $namespace = false;
 if ( strpos( $element, ':' ) ) {
  list($namespace, $element) = split( ':', $element, 2);
 }
 $this->current_field = $element;
 if ( $namespace and $namespace != 'rdf' ) {
  $this->current_namespace = $namespace;
 }
 if ( $element == 'channel' ) {
  array_unshift( $this->parent_field, 'channel' );
 }
 elseif ( $element == 'items' ) {
  array_unshift( $this->parent_field, 'items' );
 }
 elseif ( $element == 'item' ) {
  array_unshift( $this->parent_field, 'item' );
 }
}
function end_element ($p, $element) {
 $element = strtolower($element);
     
 if ( $element == 'item' ) {  
  $this->items[] = $this->current_item;
  $this->current_item = array();
  array_shift( $this->parent_field );
 }
 elseif ( $element == 'channel' or $element == 'items' ) {
  array_shift( $this->parent_field );
 }
 
 $this->current_field = '';
 $this->current_namespace = false;
}
function cdata ($p, $text) {
 if ( $this->parent_field[0] == $this->current_field or
   ! $this->current_field ) {
  return;
 }
 elseif ( $this->parent_field[0] == 'channel') {
  if ( $this->current_namespace ) {
   $this->channel[ $this->current_namespace ][ $this->current_field ] .= $text;
  }
  else {
   $this->channel[ $this->current_field ] .= $text;
  }
 
 }
 elseif ( $this->parent_field[0] == 'item' ) {
  if ( $this->current_namespace ) {
   $this->current_item[ $this->current_namespace ][ $this->current_field ] .= $text;
  }
  else {
   $this->current_item[ $this->current_field ] .= $text;
  }
 }
}
function show_list () {
 echo "<ol>\n";
 foreach ($this->items as $item) {
  echo "<li>", $this->show_item( $item );
 }
 echo "</ol>";
}

function show_channel () {
 echo "channel:<br>";
 echo "<ul>";
 while ( list($key, $value) = each( $this->channel ) ) {
  echo "<li> $key: $value";
 }
 echo "</ul>";
}
function show_item ($item) {
 echo "item: $item[title]";
 echo "<ul>";
 while ( list($key, $value) = each($item) ) {
  if ( is_array($value) ) {
   echo "<br><b>$key</b>";
   echo "<ul>";
   while ( list( $ns_key, $ns_value) = each( $value ) ) {
    echo "<li>$ns_key: $ns_value";
   }
   echo "</ul>";
  }
  else {
   echo "<li> $key: $value";
  }
 }
 echo "</ul>";
}
} # end class RSS
class RSSCache {
var $BASE_CACHE = './cache';
function RSSCache ($base) {
 if ( $base ) {
  $this->BASE_CACHE = $base;
 }
 if ( ! file_exists( $this->BASE_CACHE ) ) {
  mkdir( $this->BASE_CACHE, 0755 );
 }
}
function set ($url, $rss) {
 $cache_file = $this->file_name( $url );
 $fp = @fopen( $cache_file, 'w' );
 if ( ! $fp ) {
  return
   array(0, "Unable to open cache file for writing: $cache_file");
 }
 $data = $this->serialize( $rss );
 fwrite( $fp, $data );
 fclose( $fp );
 return array(1, $cache_file);
}
function get ($url) {
 $cache_file = $this->file_name( $url );
 if ( ! file_exists( $cache_file ) ) {
  return array(0, '', "Cache file does not exists: $cache_file");
 }
 $fp = @fopen($cache_file, 'r');
 if ( ! $fp ) {
  return array(0, '',
      "Failed to open cache file for reading: $cache_file");
 }
 $data = fread( $fp, filesize($cache_file) );
 $rss = $this->unserialize( $data );
 return array(1, $rss, 'cache.success');
}
function check_cache ( $url ) {
 $filename = $this->file_name( $url );
 if ( file_exists( $filename ) ) {
  $mtime = filemtime( $filename );
  return array(1, $filename, $mtime);
 }
 return array(0);
}
function serialize ( $rss ) {
 return serialize( $rss );
}
function unserialize ( $data ) {
 return unserialize( $data );
}
function file_name ($url) {
 $filename = md5( $url );
 return join( '/', array( $this->BASE_CACHE, $filename ) );
}
}
$CACHE_BASE = './cache';
$CACHE_AGE = 60*60; // one hour
function fetch_rss ($url, $options=array() ) {
global $CACHE_BASE, $CACHE_AGE;
if ( $options['cache.no'] ) {
 list($remote_status, $rss, $msg) = fetch_remote_rss( $url );
 if ( $remote_status and $rss ) {
  return array($rss, 1, 'success.remote');
 }
 else {
  return array($msg, 0, 'fail.no_cache');
 }
}
else {
 $base = ( $options['cache.base'] ) ? $options['cache.base'] :
           $CACHE_BASE;
 $cache_age = ( $options['cache.age'] ) ? $options['cache.age'] :
                $CACHE_AGE;
 $cache = new RSSCache( $base );
 list( $cache_status, $filename, $mtime) =
          $cache->check_cache( $url );
 $age = time() - $mtime;
 if ( $cache_status and $cache_age > $age ) {
  list($status, $rss, $msg) = $cache->get( $url );
  if ( $status and $rss ) {
   return array($rss, 1, 'success.cache');
  }
 }
 list($remote_status, $rss, $remote_msg) = fetch_remote_rss( $url );
 if ( $remote_status and $rss ) {
  $cache->set( $url, $rss );
  return array($rss, 1, 'success.remote');
 }
 if ( $cache_status ) {
  $rss = $cache->get( $url );
  if ( $rss ) {
   return array($rss, 1, 'success.cache.stale' );
  }
 }
 return array($remote_msg, 0, 'fail');
}
}
function fetch_remote_rss ($url) {
list($status, $data) = fetch_remote_file( $url );
if ( $status ) {
 $rss = new MagpieRSS( $data );
 if ( $rss ) {
  return array(1, $rss, 'success');
 }
 else {
  return array(0, '', "Failed to parse RSS file: $url");
 }
}
else {
 return array(0, '', $data);
}
}
function fetch_remote_file ($url) {
$fp = @fopen($url, 'r');

if ( ! $fp ) {
 return array(0, "Unable to open remote file: $url");
}
while ( ! feof($fp) ) {
 $data .= fread( $fp, 1024 );
}
fclose($fp);
return array(1, $data);
}
$url = $_GET['url'];
if ( ! $url ) {
// $url einfach anpassen
$url = 'http://www.php-space.info/script_feed.xml';
}
list( $rss, $status, $msg) = fetch_rss( $url );
function slashbox ($rss) {
// $trenner einfach anpssen
$trenner=';';
$title = $rss->channel['title'];
$link = $rss->channel['link'];
echo 'link'.$trenner.'title'.$trenner.'description'.$trenner;
$description = $rss->channel['description'];
foreach ($rss->items as $item ) {
 echo $item["link"].$trenner;
 echo $item["title"].$trenner;
 echo $item["description"].$trenner;
}  
}
slashbox ($rss); ?>


mfg. Nico


--------------------
Top
PMEmail PosterUsers Website
Top
 
Shopping
#3 Geschrieben am: Di 3.05.2005, 16:17 (+06:43)
Report PostQuote Post

AyomRank 8
Group Icon

Gruppe: Experten Marketing (Mod)
Beiträge: 1843
Mitglied seit: 11.12.2003


Danke!


--------------------
Bei Pligg, da verdient jeder mit! - Neuanmeldungen jetzt wieder moeglich!

Das Schweizer Shopping Portal seit 1999

Gratis - alles, was es im Internet gratis gibt
Top
PMEmail PosterUsers Website
Top
 
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
Trackback-Url: http://www.ayom.com/track/t/6925

Topic Options Reply to this topicStart new topicStart Poll

 


> Ähnliche Themen
Welches Handy - mit welchem telefoniert Ihr ? Japs 228 15 Fr 26.12.2008, 14:49
Welches ist das richtige cms für mich? Alexander W 219 5 Sa 6.12.2008, 13:00
7 oder 19% Ust. auf Datei-Downloads ? claudinchen 253 6 Mo 1.12.2008, 22:04
Welches Script verwende ich hier? selfbusiness 268 3 Mo 17.11.2008, 00:33
Falsche Index-Datei indexiert Hannes_W 221 6 Fr 7.11.2008, 08:25
Tool zum Testen der Lesbarkeit Tobiask 130 0 Do 6.11.2008, 09:59
SEO-Tool: Link Verwaltung/Überwachung – Beta Test Marco Wollank 244 3 Mi 29.10.2008, 10:01
Gehalt - Homepage Tool jeliel 236 2 Do 23.10.2008, 10:33
[S] Simples CRM Tool Ansgar Offermanns 434 16 Di 30.09.2008, 15:24
Link zu einer Datei auf dem Server setzen sylvia73 136 1 Mo 15.09.2008, 19:39




Anzeige - [Hier werben / Mediadaten]



Anzeigen


[Hier werben / Mediadaten]