トップ «前の日記(2007-01-13(Sat)) 最新 次の日記(2007-01-16(Tue))» 編集

猿も叩けば日記


2007-01-14(Sun)

_ [風博士]RSSのパースの処理がまずい?

Tech-Onのサイトなどがそうなんだが,RSSの中で

<title><![CDATA[タイトル]]></title>

という行がうまくパースできず,タイトルがからのRSSメニューが出てきてしまう.Firefoxなんかではちゃんとパースできて,きちんとフィードが表示されるので,W3C的にvalidな書式にはなっているんだと思う.

なんとなく追いかけてたら,それっぽいところを見付けた.

src/bookmark/kz-rss.c

146 if (kz_xml_node_name_is(node, "title"))

147 {

148 gchar *title = kz_xml_node_to_str(node);

149 kz_bookmark_set_title(child, title);

150 g_free(title);

151 }

で追いかけていくと,kz-xml.cに行き着いて

524 kz_xml_node_append_string (KzXMLNode *node, GString *gstr)

525 {

526 GList *list;

527

528 g_return_if_fail(node && gstr);

529

530 if (node->type == KZ_XML_NODE_TEXT)

531 g_string_append(gstr, node->content);

532

533 for (list = node->children; list; list = g_list_next(list))

534 kz_xml_node_append_string(list->data, gstr);

535 }

で,530行目での KZ_XML_NODE_TEXTしか許さないのがダメみたいだ.ここに KZ_XML_NODE_CDATAもいれてやると,メニューに表示されるようになった.しかし,<![CDATA[も表示されてしまうので,美しくない.

まずはXMLの仕様を調べる所からスタートか.


2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|05|06|07|08|09|10|11|12|
2008|01|