rád bych Vás poprosil o kontrolu kódů parsování do DOM a SAX. U SAX potřebuji změnit kódování na windows 1250, když to udělám hodí to chybu ( Warning: xml_parser_set_option() [function.xml-parser-set-option]: Unsupported target encoding "cp1250" in /var/www-stud/e100105/import_sax.php on line 62
Data byla úspěšně importována) . U DOM se mi import podaří, ale vytvoří se jen prázdné místo, hodnoty se už nevypíší. Poradí mi někdo? Děkuji :)
DOM
Kód: Vybrat vše
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>
<?php
$mysql_server = 'localhost';
$mysql_db = 'novak_projekt';
$mysql_user = 'e100105';
$mysql_password = xxxx';
$link = mysql_connect($mysql_server, $mysql_user, $mysql_password);
$databaze=MySQL_Select_DB('e100105', $link);
mysql_query("SET CHARACTER SET cp1250");
$objekt = new domDocument('1.0', 'Windows-1250');
$objekt->load('data.xml');
$telefon = $objekt->getElementsByTagName("mobil");
foreach ($telefon as $telefon){
$znacka = $telefon->getAttribute('znacka');
$typ = $telefon->getAttribute('typ');
$stari = $telefon->getAttribute('stari');
$vymena = $telefon->getAttribute('vymena');
$konstrukce = $telefon->getAttribute('konstrukce');
$zkusenosti = $telefon->getAttribute('zkusenosti');
$prikaz="INSERT INTO novak_projekt (`ID`, `znacka`, `typ` , `stari` , `vymena` , `konstrukce`, `zkusenosti`) VALUES (NULL, '".$znacka."', '".$typ."', '".$stari."', '".$vymena."', '".$konstrukce."', '".$zkusenosti."')";
$import=mysql_query($prikaz);
}
if($import)echo "Data byla úspěšně importována";
else echo "Data se nepodařilo importovat";
?><br>
<a href="index.php">Návrat na hlavní stránku</a>
</body>
</html>
SAX
Kód: Vybrat vše
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>
<?php
$mysql_server = 'localhost';
$mysql_db = 'novak_projekt';
$mysql_user = 'e100105';
$mysql_password = 'xxxx';
$link = mysql_connect($mysql_server, $mysql_user, $mysql_password);
$databaze=MySQL_Select_DB('e100105', $link);
mysql_query("SET CHARACTER SET cp1250");
$file = 'data.xml';
$usercount = 0;
$lastdata = "";
$lasttag = "";
$userdata = array();
function startElement($xml_parser, $name, $attrs){
global $tag,$userdata,$lastdata,$lasttag;
$tag = $name;
if(count($attrs)>0){
foreach($attrs as $a_name => $a_value){
$userdata[$a_name][] = $a_value;
}
}
}
function endElement($xml_parser, $name){
global $tag,$userdata,$lastdata,$lasttag;
$usercount++; }
function characterData($xml_parser, $data){
global $userdata,$usercount,$tag,$lastdata,$lasttag;
if (trim($data) != '') {
if (strcmp($lasttag,$tag)==0){
$data = $lastdata .trim($data);
$lastdata = $lasttag = '';
array_pop($userdata[$tag]) ;
$userdata[$tag][] = $data;
} else {
$lastdata = $data;
$lasttag = $tag;
$userdata[$tag][] = $data;
}
}
}
$xml_parser = xml_parser_create("UTF-8");
xml_parser_set_option($xml_parser,XML_OPTION_TARGET_ENCODING,"UTF-8");
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser,"characterData");
if(!($fp = fopen($file, "r"))){
die ("Nelze otevřít soubor.");
}
while ($data = fread($fp, 4096)){
if (!xml_parse($xml_parser, $data, feof($fp))) {
die (sprintf("Chyba: %s v řádku %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
$i = 0;
do {
$znacka = $userdata["ZNACKA"][$i];
$typ = $userdata["TYP"][$i];
$stari = $userdata["STARI"][$i];
$vymena = $userdata["VYMENA"][$i];
$konstrukce = $userdata["KONSTRUKCE"][$i];
$zkusenosti = $userdata["ZKUSENOSTI"][$i];
$prikaz="INSERT INTO novak_projekt (`ID`, `znacka`, `typ` , `stari` , `vymena` , `konstrukce`, `zkusenosti`) VALUES (NULL, '".$znacka."', '".$typ."', '".$stari."', '".$vymena."', '".$konstrukce."', '".$zkusenosti."')";
$import=mysql_query($prikaz) ;
$i++;
} while($i<=sizeof($userdata["ZNACKA"])-1);
if($import) echo "Data byla úspěšně importována";
else echo "Data se nepodařilo importovat";
?><br>
<a href="index.php">Návrat na hlavní stránku</a>
</body>
</html>