Tsep
Guest
Что-то совсем не парсится
((
Взля пример, который работает! Поменял названия нод и сам xml - перестало парситься
((( Сижу и не могу понять почему. Может кто взглянет свежим взглядом что тут не так?
<root>
<item>
<artikel>11060100</artikel>
<typeart>Туфли</typeart>
<vidart>Женские</vidart>
<mat>Кожа</mat>
<color>Черный</color>
<podkl>Кожа натурал.</podkl>
<foto>11060100</foto>
<rostovka>39.00 - 47.00</rostovka>
</item>
<item>
<artikel>11080100</artikel>
<typeart>Туфли</typeart>
<vidart>Женские</vidart>
<mat>Пул-ап</mat>
<color>Голубой</color>
<podkl>Кожа натурал.</podkl>
<foto>11080100</foto>
<rostovka>39.00 - 47.00</rostovka>
</item>
</root>
<?
$file = "Test2.xml";
$x_artikel = array();
$x_typeart = array();
$x_vidart = array();
$x_mat = array();
$x_color = array();
$x_podkl = array();
$x_foto = array();
$x_rostovka = array();
function startElement($parser, $name, $attrs) // функция обработки открывающего тега
{
global $nname, $opentag;
$opentag=true;
$nname=$name;
}//startElement
function endElement($parser, $name) // функция обработки закрывающего тега
{
global $opentag;
$opentag=false;
}//endElement
function CharacterData($parser, $data) // функция обработки данных
{
global $nname, $n, $a, $opentag, $x_artikel, $x_typeart, $x_vidart, $x_mat, $x_color, $x_podkl, $x_foto, $x_rostovka;
if ($nname == "artikel" and $opentag ) { $x_artikel[] = $data;};
if ($nname == "typeart" and $opentag) { $x_typeart[] = $data;};
if ($nname == "vidart" and $opentag) { $x_vidart[] = $data;};
if ($nname == "mat" and $opentag) { $x_mat[] = $data;};
if ($nname == "color" and $opentag) { $x_color[] = $data;};
if ($nname == "podkl" and $opentag) { $x_podkl[] = $data;};
if ($nname == "foto" and $opentag) { $x_foto[] = $data;};
if ($nname == "rostovka" and $opentag) { $x_rostovka[] = $data;};
}//CharacterData
$xml_parser = xml_parser_create(); // создание обработчика событий
xml_set_element_handler($xml_parser, "startElement", "endElement"); // установка функций обработки
xml_set_character_data_handler($xml_parser, "CharacterData" ); // начального, конечного тега и данных
if (!($fp = fopen($file, "r")))
{
die("could not open XML input");
}//if
while ($data = fread($fp, 800000))
{
xml_parse($xml_parser, $data);
}//while
for ($i=0;$i<count($x_artikel);$i++)
{
print ($x_artikel[$i])."<BR>";
print ($x_vidart[$i])."<BR>";
print ($x_mat[$i])."<BR>";
print ($x_color[$i])."<BR>";
print ($x_typeart[$i])."<BR>";
print ($x_podkl[$i])."<BR>";
print ($x_foto[$i])."<BR>";
print ($x_rostovka[$i])."<BR><BR>";
}//for
?>

Взля пример, который работает! Поменял названия нод и сам xml - перестало парситься

<root>
<item>
<artikel>11060100</artikel>
<typeart>Туфли</typeart>
<vidart>Женские</vidart>
<mat>Кожа</mat>
<color>Черный</color>
<podkl>Кожа натурал.</podkl>
<foto>11060100</foto>
<rostovka>39.00 - 47.00</rostovka>
</item>
<item>
<artikel>11080100</artikel>
<typeart>Туфли</typeart>
<vidart>Женские</vidart>
<mat>Пул-ап</mat>
<color>Голубой</color>
<podkl>Кожа натурал.</podkl>
<foto>11080100</foto>
<rostovka>39.00 - 47.00</rostovka>
</item>
</root>
<?
$file = "Test2.xml";
$x_artikel = array();
$x_typeart = array();
$x_vidart = array();
$x_mat = array();
$x_color = array();
$x_podkl = array();
$x_foto = array();
$x_rostovka = array();
function startElement($parser, $name, $attrs) // функция обработки открывающего тега
{
global $nname, $opentag;
$opentag=true;
$nname=$name;
}//startElement
function endElement($parser, $name) // функция обработки закрывающего тега
{
global $opentag;
$opentag=false;
}//endElement
function CharacterData($parser, $data) // функция обработки данных
{
global $nname, $n, $a, $opentag, $x_artikel, $x_typeart, $x_vidart, $x_mat, $x_color, $x_podkl, $x_foto, $x_rostovka;
if ($nname == "artikel" and $opentag ) { $x_artikel[] = $data;};
if ($nname == "typeart" and $opentag) { $x_typeart[] = $data;};
if ($nname == "vidart" and $opentag) { $x_vidart[] = $data;};
if ($nname == "mat" and $opentag) { $x_mat[] = $data;};
if ($nname == "color" and $opentag) { $x_color[] = $data;};
if ($nname == "podkl" and $opentag) { $x_podkl[] = $data;};
if ($nname == "foto" and $opentag) { $x_foto[] = $data;};
if ($nname == "rostovka" and $opentag) { $x_rostovka[] = $data;};
}//CharacterData
$xml_parser = xml_parser_create(); // создание обработчика событий
xml_set_element_handler($xml_parser, "startElement", "endElement"); // установка функций обработки
xml_set_character_data_handler($xml_parser, "CharacterData" ); // начального, конечного тега и данных
if (!($fp = fopen($file, "r")))
{
die("could not open XML input");
}//if
while ($data = fread($fp, 800000))
{
xml_parse($xml_parser, $data);
}//while
for ($i=0;$i<count($x_artikel);$i++)
{
print ($x_artikel[$i])."<BR>";
print ($x_vidart[$i])."<BR>";
print ($x_mat[$i])."<BR>";
print ($x_color[$i])."<BR>";
print ($x_typeart[$i])."<BR>";
print ($x_podkl[$i])."<BR>";
print ($x_foto[$i])."<BR>";
print ($x_rostovka[$i])."<BR><BR>";
}//for
?>