4
我遇到過(我認爲是)使用sax解析器時的一個奇怪行爲,我想知道它是否正常。LibXML2 Sax解析和符號
我通過SAX解析器發送此XML:
<site url="http://example.com/?a=b&b=c"; />
的 「&」 被轉換爲 「&」 當startElement
回調 被調用。它應該這樣做嗎?如果是這樣,我想 明白爲什麼。
我貼的例子在這裏展示的問題:
#include <stdlib.h>
#include <libxml/parser.h>
static void start_element(void * ctx, const xmlChar *name, const xmlChar **atts)
{
int i = 0;
while(atts[i] != NULL) {
printf("%s\n", atts[i]);
i++;
}
}
int main(int argc, char *argv[]) {
xmlSAXHandlerPtr handler = calloc(1, sizeof(xmlSAXHandler));
handler->startElement = start_element;
char * xml = "<site url=\"http://example.com/?a=b&b=c\" />";
xmlSAXUserParseMemory(handler,
NULL,
xml,
strlen(xml)
);
}
PS:此消息實際上是從LibXML2 list提取...我不是這個郵件的最初作者,但我注意到了問題使用Nokogiri和Aaron(Nokogiri的維護者)實際上自己發佈了這條消息。