예제 #1
0
static void
process_bijiben_html_content (BijiLazyDeserializer *self)
{
  BijiLazyDeserializerPrivate *priv = self->priv;
  int ret;
  gchar *sane_text, *sane_html;

  priv->inner = xmlReaderForMemory (priv->content,
                                    strlen(priv->content),
                                    "", "UTF-8", 0);
  
  ret = xmlTextReaderRead (priv->inner);

  /* Make the GString grow as we read */
  while (ret == 1) 
  {
    process_bijiben_node (self);
    ret = xmlTextReaderRead (priv->inner);
  }

  /* Now the inner content is known, we can
   * assign note values and let deserialization work on last elements*/
  sane_html = biji_str_mass_replace (priv->html->str, "&#xA;" , "<br/>",
                                                      "&amp;" , "&"      , NULL);
  sane_text = biji_str_mass_replace (priv->raw_text->str, "&#xA;", "    ",
                                                          "&amp;", "&"   , NULL);

  biji_note_obj_set_raw_text (priv->note, sane_text);
  biji_note_obj_set_html_content (priv->note, sane_html);

  g_free (sane_text);
  g_free (sane_html);
}
예제 #2
0
static void
process_bijiben_html_content (BijiLazyDeserializer *self,
                              xmlTextReaderPtr      reader)
{
  BijiLazyDeserializerPrivate *priv = self->priv;
  int ret;
  gchar *sane_html;

  sane_html = (gchar*) xmlTextReaderReadInnerXml (reader);

  priv->inner = xmlReaderForMemory (sane_html,
                                    strlen(sane_html),
                                    "", "UTF-8", 0);

  ret = xmlTextReaderRead (priv->inner);

  /* Make the GString grow as we read */
  while (ret == 1)
  {
    process_bijiben_node (self);
    ret = xmlTextReaderRead (priv->inner);
  }

  biji_note_obj_set_raw_text (priv->note, priv->raw_text->str);
  biji_note_obj_set_html (priv->note, sane_html);

  xmlFree (BAD_CAST sane_html);
}