4
サックスパーサーを使用しているときに奇妙な動作が発生していると思いますが、それが正常かどうかを知りたかったのです。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(ノコギリのメンテナー)がこのメッセージを実際に投稿しました。