xml.libxml2_新增帶tagname的xml文字(xmlNewTextChild)
阿新 • • 發佈:2018-11-06
1、
2、例子程式碼:
int TgText::NodeNew_G2SVG(xmlNode* _pNodeCurrent_G, xmlNode* _pNodeParent_SVG, xmlNode** _ppNodeNew_SVG) { //// ZC: SVG 方式 //*_ppNodeNew_SVG = ChildNodeCreate(_pNodeParent_SVG, "text"); // ZC: 內嵌HTML方式 xmlNode* pNode_switch = ChildNodeCreate(_pNodeParent_SVG, "switch"); xmlNode* pNode_foreignObject = ChildNodeCreate(pNode_switch, "foreignObject"); //xmlSetProp(pNode_foreignObject, BAD_CAST "x", BAD_CAST ""); //xmlSetProp(pNode_foreignObject, BAD_CAST "y", BAD_CAST ""); xmlSetProp(pNode_foreignObject, BAD_CAST "width", BAD_CAST TextWidth_switch_foreignObject); xmlSetProp(pNode_foreignObject, BAD_CAST"height", BAD_CAST TextHeight_switch_foreignObject); xmlNode* pNode_p = ChildNodeCreate(pNode_foreignObject, "p"); xmlSetProp(pNode_p, BAD_CAST "xmlns", BAD_CAST "http://www.w3.org/1999/xhtml"); { // <switch/>下面的<text/> xmlNode* pNode_text = ChildNodeCreate(pNode_switch, "text"); xmlNode* pContent = xmlNewText(BAD_CAST "<p>Your SVG viewer cannot display html.</p>"); xmlAddChild(pNode_text, pContent); //xmlNewDocRawNode(pNode_text->doc, NULL, BAD_CAST "p", BAD_CAST "Your SVG viewer cannot display html."); xmlNode* p = xmlNewTextChild(pNode_text, NULL, BAD_CAST "p", BAD_CAST "Your SVG viewer cannot display html."); xmlSetProp(p, BAD_CAST "font-size", BAD_CAST "16px"); } *_ppNodeNew_SVG = pNode_p; return 0; }
2.1、上面的程式碼,主要的目的是 在 <text/>下新增節點內容 “<p>Your SVG viewer cannot display html.</p>”,效果如下:
<text><p>Your SVG viewer cannot display html.</p><p font-size="16px">Your SVG viewer cannot display html.</p></text>
(1)、但是 函式xmlNewText() 會將 尖括號 翻譯成 “<”和“>”
(2)、xmlNewTextChild() 卻可以 達到這個效果,還能對 返回的節點指標進行 屬性操作
3、
4、
5、