Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / загвоздка в парсинге / 6 сообщений из 6, страница 1 из 1
07.06.2006, 17:02
    #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
08.06.2006, 17:51
    #33781548
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загвоздка в парсинге
стандартом не предусмотрено
у маздая есть
но ты, кажется, вообще используешь сакс
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
09.06.2006, 09:25
    #33782350
i'm_novice
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загвоздка в парсинге
а что посоветуете?
...
Рейтинг: 0 / 0
09.06.2006, 11:16
    #33782681
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загвоздка в парсинге
либо сделать свой велосипед, либо заюзать уже сделанный.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
09.06.2006, 12:23
    #33782954
i'm_novice
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загвоздка в парсинге
какой велосипед имеете в виду? мне бы такой велик, что и на php4 работал. в
принципе этим и объясняю, почему начал свое делать, а не использовать, к
примеру, XPath.
...
Рейтинг: 0 / 0
09.06.2006, 14:06
    #33783354
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
загвоздка в парсинге
о велосипедах для пхп тебе нужно спрашивать на форуме для пхп.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / загвоздка в парсинге / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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