[libxml2]_[C/C++]_[使用libxml2生成文件xhtml]


场景:

1.需要生成xhtml文件.比如生成浏览器可预览的表格.


TEST(test_xml_writer,testWriteXhtml)
{
	 //定义文档和节点指针
	xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0");
	xmlNodePtr root_node = xmlNewNode(NULL,BAD_CAST"html");
	//设置根节点
	xmlDocSetRootElement(doc,root_node);
	xmlNewProp(root_node,BAD_CAST"xmlns",BAD_CAST "http://www.w3.org/1999/xhtml");

	xmlNodePtr head_ptr = xmlNewTextChild(root_node,NULL,BAD_CAST "head",NULL);
	xmlNodePtr title_ptr = xmlNewTextChild(head_ptr,NULL,BAD_CAST "title",NULL);
	xmlNodePtr link_ptr = xmlNewTextChild(head_ptr,NULL,BAD_CAST "link",NULL);
	xmlNewProp(link_ptr,BAD_CAST"res",BAD_CAST "stylesheet");
	xmlNewProp(link_ptr,BAD_CAST"href",BAD_CAST "");
	xmlNewProp(link_ptr,BAD_CAST"type",BAD_CAST "text/css");
	xmlSetProp(link_ptr,BAD_CAST"href",BAD_CAST "../1.css");

	xmlNodePtr body_ptr = xmlNewTextChild(root_node,NULL,BAD_CAST "body",NULL);

	xmlNodePtr p = xmlNewTextChild(body_ptr, NULL, BAD_CAST "p", BAD_CAST "newNode1 content");
	xmlNodeSetContent(p,BAD_CAST "infoworld");
	//存储xml文档
	int nRel = xmlSaveFormatFileEnc("dist/word.xhtml",doc,"UTF-8",1);
	assert(nRel!=-1);
	xmlFreeDoc(doc);
}

输出:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title/>
    <link res="stylesheet" href="../1.css" type="text/css"/>
  </head>
  <body>
    <p>infoworld</p>
  </body>
</html>



你可能感兴趣的:(C++,xml,XHTML,libxml2)