powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / загвоздка в парсинге
6 сообщений из 6, страница 1 из 1
загвоздка в парсинге
    #33778407
i'm_novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброе сремя суток!
мало знаком с xml, поэтому что-то не соображу кое-чего...

у меня такой xml...

xml:
Код: plaintext
1.
2.
3.
4.
5.
6.
<serviceform>
  <code>
	<repeat><div style="display:none;border:1px solid black;"></div></repeat>
	<divider><hr color="#e4e4e4" noshade="noshade" length="90%"/></divider>
  </code>
</serviceform>

хочу получить содержимое тегов repeat и divider. делаю так: создаю массив, где
ключом является тег, значение - все, что внутри тега.

php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
$form = array();
$code = null;

$index = null;

	function startElement($parser, $name, $attrs) 
	{
    	global $form,
		$code,
		$index;
	        switch($name) 
		{
                case "serviceform ":
          		$form = array();
          		break;
          	case "code":
          		$code = array();
          		break;

      		default:
          		$index = $name;
          		break;
          		
    	} // end switch
  	}

	function endElement($parser, $name) 
	{
    	global $form, $code, $index;
 
   		if ((is_array($code)) && ($name == "code"))
		{ 
      		$form[] = $code;
      		$code = null;
    	}
	    
		$index = null;
  	}

	function characterData($parser, $data) 
	{
    	global $code, $index;
	    if ((is_array($code)) && ($index)) $code[$index] = $data;
  	}

	$parser = xml_parser_create();
  	xml_set_element_handler($parser, "startElement", "endElement");
  	xml_set_character_data_handler($parser, "characterData");
  	xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,false);
//.........................

если в теге содержится только текст, все работает замечательно. но если
содержится "html", то массив пустой.

как взять все содержимое тега, вне зависимости, что там находится, не обращая
внимания на "<" и ">"? есть ли в парсинге xml что-то на подобие innerHTML как у JS?
...
Рейтинг: 0 / 0
загвоздка в парсинге
    #33781548
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стандартом не предусмотрено
у маздая есть
но ты, кажется, вообще используешь сакс
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
загвоздка в парсинге
    #33782350
i'm_novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что посоветуете?
...
Рейтинг: 0 / 0
загвоздка в парсинге
    #33782681
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо сделать свой велосипед, либо заюзать уже сделанный.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
загвоздка в парсинге
    #33782954
i'm_novice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
какой велосипед имеете в виду? мне бы такой велик, что и на php4 работал. в
принципе этим и объясняю, почему начал свое делать, а не использовать, к
примеру, XPath.
...
Рейтинг: 0 / 0
загвоздка в парсинге
    #33783354
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о велосипедах для пхп тебе нужно спрашивать на форуме для пхп.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / загвоздка в парсинге
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]