Example #1
0
kal_int32 xml_generate_converted_data(XG_HANDLE hd, kal_char *text, kal_int32 textlen)
{    

	 kal_int32 ret, i, len;
     xml_generator_struct *p = NULL;
	 /* first check if parameters are correct */
	if ((hd < 0) || (hd >= XG_MAX_HANDLE_NUM))
    {
	     return XG_E_HANDLE;
    }

	 p = &(xg_array[hd]);
	 len = 0;
	 while(i = xml_generate_convert_named_char(p, &text, textlen))
     {   
           textlen -= i;
           if((ret =  xml_generate_data(hd, p->convertbuf, p->convertlen)) < 0)
           	{
           		return ret;
           	}
            
           len += i;
     }

	 return len;
            
}
Example #2
0
void test_xmlgen(void)
{
    
    XG_HANDLE  hd;
    xg_attr_struct attrlist[2];
    char *data = NULL, *dtd=NULL;
    kal_wchar resultname[128];
    int  ret, len, driver;

    driver = FS_GetDrive(FS_DRIVE_V_NORMAL, 1, FS_DRIVE_I_SYSTEM);
    csd_wsprintf((kal_uint16*)resultname, "%c:\\xmlsample.txt",driver);    

    hd = xml_new_generator((kal_char*)resultname, 0);
    xml_generate_xmldecl(hd, 0, XML_ENCODING_UTF8);
    xml_generate_doctypedecl(hd, "bookshop", XG_DOCTYPE_SYSTEM, "bookshop.dtd");
    dtd = "<!ELEMENT greeting (#PCDATA)>";
    len = strlen(dtd);
//    xml_generate_doctypedecl_ex(hd, "bookshop", dtd, len);
  
    ret = xml_generate_stag(hd, "bookshop", NULL, 0);  /*  to generate:  <bookshop> */
 
    /* to generate: <book1>this is a book of computer</book1> */

    data = "test data";
    
    ret = xml_generate_inline_element(hd, "book1", data, strlen(data)); 
    

    ret = xml_generate_stag(hd, "contact", NULL, 0);
    
    /* to generate: <address street="Xi Dan Street"/> */
    attrlist[0].attrname = "street";
    attrlist[0].attrvalue = "Xi Dan Street";
    attrlist[1].attrname = "code";
    attrlist[1].attrvalue = "100022";
    ret = xml_generate_empty_element(hd, "address", attrlist, 2);
  
    /* to generate: <email>[![CDATA[[email protected]]]></email> */
    ret = xml_generate_stag(hd, "email", NULL, 0);
    data = " [email protected]";
    ret = xml_generate_cdata(hd, data, strlen(data));
   
    ret = xml_generate_etag(hd, "email");

    ret = xml_generate_stag(hd, "msn", NULL, 0);
    data = "*****@*****.**";
    ret = xml_generate_data(hd, data, strlen(data));
    ret = xml_generate_etag(hd, "msn");
  
    /* to generate: </contact> */
    ret = xml_generate_etag(hd, "contact");
    
    /* to generate: </sample> */
    ret = xml_generate_etag(hd, "bookshop");
  
    xml_close_generator(hd);
}