tak utf8
Robie import z xml i tak to wygląda
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
$file = 'WMRODZ.xml';
function startTag($parser, $name, $attrs)
{
$tag=array("name"=>$name,"attrs"=>$attrs);
}
function cdata($parser, $cdata)
{
{
$stack[count($stack)-1]['cdata']=$cdata; }
}
function endTag($parser, $name)
{
$stack[count($stack)-2]['children'][] = $stack[count($stack)-1
]; }
$xml_parser = xml_parser_create('UTF-8');
xml_set_element_handler($xml_parser, "startTag", "endTag");
xml_set_character_data_handler($xml_parser, "cdata");
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, TRUE);
xml_parser_set_option($xml_parser, XML_OPTION_SKIP_WHITE, TRUE);
xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, "utf-8");
if(!$data) {
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
xml_parser_free($xml_parser);
foreach ($stack[0]['children'][0]['children'] as $key=>$value):
$insert = "INSERT INTO slo_WMRODZ VALUES ( ";
foreach($value['children'] as $line):
$cdata = $line['cdata'];
$insert .= " '".trim($cdata)."', "; endforeach;
$insert .= " );";
endforeach;
?>
Plik xml
<?xml version="1.0" encoding="UTF-8"?>
<teryt>
<catalog name="SIMC" type="all" date="2009-01-01">
<row>
<col name="RM">01</col>
<col name="NAZWA_RM">wieś </col>
<col name="STAN_NA">2009-01-01</col>
</row>
<row>
<col name="RM">02</col>
<col name="NAZWA_RM">kolonia </col>
<col name="STAN_NA">2009-01-01</col>
</row>
<row>
<col name="RM">03</col>
<col name="NAZWA_RM">przysiółek </col>
<col name="STAN_NA">2009-01-01</col>
</row>
<row>
<col name="RM">04</col>
<col name="NAZWA_RM">osada </col>
<col name="STAN_NA">2009-01-01</col>
</row>
</catalog>
</teryt>
Wynik
INSERT INTO slo_WMRODZ VALUES ( '01', 'ś', '2009-01-01', );
INSERT INTO slo_WMRODZ VALUES ( '02', 'kolonia', '2009-01-01', );
INSERT INTO slo_WMRODZ VALUES ( '03', 'ółek', '2009-01-01', );
INSERT INTO slo_WMRODZ VALUES ( '04', 'osada', '2009-01-01', );
Czy ktoś miał podobny problem?