[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: автоматический параграф-нумерация
Undertaker
Доброго времени суток, уважаемые форумчане.
Не знал куда задать вопрос и решил что всё же сюда.
Есть у меня .xml файлик со следующей структурой:
Свернутый текст

Element: DOCUMENT
Element: REGIONINFO
Element: PARAMETERS
Element: COMMONPK
Element: INDEXES
Element: INDEXESPOS
Element: INDEX
Element: INDEX
Element: INDEX
Element: INDEX
Element: OSINDEXES
Element: REGIONALK
Element: TERZONEK
Element: VIDRAB_CATALOG
Element: VIDS_RAB
Element: VIDRAB_GROUP
Element: VID_RAB
Element: VIDRAB_GROUP
Element: VID_RAB
Element: VID_RAB
Element: VIDRAB_GROUP
Element: VIDS_RAB
Element: CHAPTERS
Element: CHAPTER
Element: POSITION
и т.д.

Т.е. есть элемент, в нём элемент 2-го уровня, в нём элемент 3-го уровня. Потом снова может идти элемент первого. "Уровни" отделяются пробелами. Xml скрывает их +-ми, я же хочу положить их в базу и отследить где чьё. В голову пришла только одна идея-сделать нумерованные параграфы т.е. 1.1.1 далее 1.1.2, 1.1.3, 2.1.1... и т.д.
Но вот как их пронумеровать автоматом я не понимаю (первые числа понимаю далее теряюсь)
Сколько будет под списков приблизительно 7, но не факт.
Может подскажете куда идти?
Вот код:

function startElement($parser, $name, $attrs) {
global $depth;
global $paragraf;
echo str_repeat(" ", $depth * 3); // отступы

//жалкая попытка осуществить задуманное, но...

if ($depth==0){}
if ($depth==1){
$put=$paragraf++.'.0.0.0.0.0';
echo $put;
}
if ($depth==2){
$put='1.'.$paragraf++.'.0.0.0.0.0';
echo $put;
}

echo "<b>Element: $name</b><br>"; // имя элемента
$depth++; // увеличиваем глубину, чтобы браузер показал отступы

}
function endElement($parser, $name) {
global $depth;
$depth--; // уменьшаем глубину
}
$depth = 0;
$file = "gsf.xml";
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
while ($data = fgets($fp)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
echo "<br>XML Error: ";
echo xml_error_string(xml_get_error_code($xml_parser));
echo " at line ".xml_get_current_line_number($xml_parser);
break;
}
}

xml_parser_free($xml_parser);

Может есть более лёгкие способы или надо вводить до***ей переменных, что бы работал параграф?

_____________
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.