parseXML()
Няма да обърна много внимание на първите редове от този метод, тъй кат това са функции на PHPи можете да ги проверите в ръководствтото на PHP, само да отбележа, че не можете да пропуснете никоя от тях, тъй като те са основните за същинското четене на XML файла.
if ($this->_mode != 'all')
{
if (@!($fp = fopen($this->_url, "rb")))
{
die("Could not open XML input");
}
while ($data = fread($fp, 4096))
{
if (@!xml_parse($xml_parser, $data, feof($fp)))
{
die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
}
Тази част от метода се активира при положение, че имаме само един файл за четене. С fopen($this->_url, "rb") отваряме файла за бинарно четене ( бинарното четене е въпрос на избор, и обикновенни също върши работа) след което започваме да го четем на порции $data = fread($fp, 4096) и да подаваме тези "порции" на xml_parse(). Тъй като ползваме тази функция за четенето на файла на "парче" трябва да бъде използвана с третия и параметър, който указва края на файла, в случая се възползваме от feof($fp) което ще върне true при положение че това е края.
elseif($this->_mode == 'all')
{
.........
}
Този случай ще се активира при положение, че подаваме на класа стринг с цялото съдържание на всички файлове. Тя е идентична на горната с единствената разлика, че не зареждаме съдържанието на файл.
С викането на xml_parse() се виат още три метода, които обуславят държанието на РНР в различните положения: