ситуация: почему-то в php5 не получается правильно получить entity из xml-я. долгое время сидел на php4-cgi и все было великолепно. спрашивается, что я недопонимаю?
код, который должен рисовать "<":
[code]
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$xml = <<<EOB
<?xml version="1.0" encoding="utf-8"?>
<root>There should be a less sign: "<"</root>
EOB;
function startt($p, $n, $a) {
}
function endt($p, $n) {
}
function cdata($p, $d) {
echo htmlspecialchars($d);
}
$p = xml_parser_create('UTF-8');
xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, false);
xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, false);
xml_set_element_handler($p, 'startt', 'endt');
xml_set_default_handler($p, 'cdata');
if(!xml_parse($p, $xml, true)) {
echo 'DONE with ' . xml_get_error_code($p) . ':' . xml_error_string($p);
}
[/code]
эквивалентный C-шный код, который таки рисует "<":
[code]
#include <stdio.h>
#include <expat.h>
void startElement(void *userData, const char *name, const char **atts)
{
}
void endElement(void *userData, const char *name)
{
}
void cdata(void *userData, char *data, int len) {
printf("%.*s", len, data);
}
char xml[] = "<?xml version=\"1.0\"?>"
"<root>There should be a less sign: \"<\"</root>";
int main()
{
XML_Parser parser = XML_ParserCreate(NULL);
XML_SetElementHandler(parser, startElement, endElement);
XML_SetCharacterDataHandler(parser, cdata);
if (!XML_Parse(parser, xml, strlen(xml), 1)) {
fprintf(stderr,
"%s at line %d\n",
XML_ErrorString(XML_GetErrorCode(parser)),
XML_GetCurrentLineNumber(parser));
return 1;
}
}
[/code]
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Вопрос по библиотеке expat (2004)
- Форум Мне нужна помощь, 2 недели пытаюсь собрать дрова для Alfa AWUS036NH (2019)
- Форум AVFoundation проблема записи после переподключения микрофона (2024)
- Форум Изменение скрипта aa-recorder (2018)
- Форум html-entities (2012)
- Форум вопрос по expat (2008)
- Форум expat & koi-8 (2004)
- Форум php5 (2016)
- Форум php5 (2005)
- Форум LORScriptPack - UserScript, делающий ЛОР удобным (2024)