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 ;
}

  2.1、上面的代码,主要的目的是 在 <text/>下添加节点内容 “<p>Your SVG viewer cannot display html.</p>”,效果如下:

<text>&lt;p&gt;Your SVG viewer cannot display html.&lt;/p&gt;<p font-size="16px">Your SVG viewer cannot display html.</p></text>

   (1)、但是 函数xmlNewText(...) 会将 尖括号 翻译成 “&lt;”和“&gt;”

   (2)、xmlNewTextChild(...) 却可以 达到这个效果,还能对 返回的节点指针进行 属性操作

    ZC:关注一下 这个函数xmlNewDocRawNode(...),个人感觉 应该也可以,可能是这样设置参数:

      XMLPUBFUN xmlNodePtr XMLCALL
      xmlNewDocRawNode (xmlDocPtr doc,
        xmlNsPtr ns,
        const xmlChar *name,// ZC:这里填 节点的tagname
        const xmlChar *content // ZC:这里填 节点里面的 文本内容
      );

      然后对返回的 节点指针 进行操作,如 “xmlAddChild(父节点, 返回的节点指针);” 、属性操作 等  (只是 猜想,待测试)

3、

4、

5、

xml.libxml2_添加带tagname的xml文本(xmlNewTextChild)的更多相关文章

  1. Bean XML 配置(1)- 通过XML配置加载Bean

    系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Contro ...

  2. C#读取带命名空间的xml,xaml文件的解决方案

    使用C#读取xml文件有三种常用的方式: 1.xmlDocument 2.XmlTextReader 3.Linq To Xml 但是这些方式在读写有些带命名空间的xml时就不知道怎么办了(例如把xa ...

  3. XML系列之--Linq操作带属性的XML(四)

    关于XML,之前解析过电文收发方面的,就是所谓的带表头.前缀(命名空间)SOAP格式.这次需求是解析一个xml的模板(xls内容),然后填充数据,最后保存.需要时可转换xls.pdf等文件.关于这种带 ...

  4. C# 解析带前缀的Xml节点内容

    一般的xml文件相信大家都会解析了,但是遇到有命名空间的带前缀的xml,对于新手可能会有点问题.我这里在论坛解答的时候就遇到过一题,见怎么获取XML节点里面的内容,在线求教.这里给大家演示一下. 他的 ...

  5. 由“Jasperrpeorts 4.1.2升级到5.1.2对flex项目的解析”到AS3 带命名空间的XML的操作

    原文同步至:http://www.waylau.com/from-jasperrpeorts-4-1-2-upgraded-to-5-1-2-parsing-of-flex-projects-to-t ...

  6. (转)如何在maven的pom.xml中添加本地jar包

    1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下所示: 1 groupId 2 artifactId 3 version 4 jar包的依赖 如果要将 ...

  7. XML记一次带命名空间的xml读取

    public static void ReadXML(string xmlUrl) { //判断文件是否存在 if (!File.Exists(xmlUrl)) { Console.WriteLine ...

  8. (转)如何在maven的pom.xml中添加本地jar包

    转载自: https://www.cnblogs.com/lixuwu/p/5855031.html 1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下 ...

  9. pom.xml中添加远程仓库

    maven的pom.xml中添加远程仓库 <repositories> <repository> <id>mvnrepository</id> < ...

随机推荐

  1. javascript 关键字高亮显示实现代码

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...

  2. 线程同步-SpinWait

    这次将描述如何不适用内核模式的方式来使线程等待.SpinWait,它是一个混合同步构造,被设计为使用用户模式等待一段时间,然后切换到内核模式以节省CPU时间. 代码Demo: using System ...

  3. Linux:dd命令

    dd:“data duplicator” 意为数据复印机,它可以用来拷贝和转换数据. 备份和恢复整个硬盘或分区 备份MBR(主引导记录) 在ASCII和EBCDIC格式之间转换 也可以为Linux内核 ...

  4. [httpd] httpd server 在低负载的情况下对SYN无响应

    如题: 两台client通过load balance访问httpd server.两个client交互访问.load balance处于fullnat模式. server在低负载情况下,常常对某一个c ...

  5. [ssh] 通过ssh私钥生成公钥的方法

    ssh-keygen -y -f .ssh/id_rsa.key id_rsa.key是私钥.

  6. Win7 搭建Linux开发环境

    Vargant Vagrant 是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境.它使用 Oracle 的开源 VirtualBox 虚拟化系统,使用 Chef 创建自动化虚拟环境. 功能特 ...

  7. Django之Cookie、Session、CSRF、Admin

    Django之Cookie.Session.CSRF.Admin   Cookie 1.获取Cookie: 1 2 3 4 5 6 request.COOKIES['key'] request.get ...

  8. Xmodem协议简介

    1.      Xmodem协议 1.1.    简介 在上一章中,BootLoader和APP在串口下的升级其实都用到了一种文件传输协议,即Xmodem协议,该协议因其简单,易实现和使用的特点在很多 ...

  9. JDBC 和连接池

    1 JDBC概述 Java DataBase Connectivity,Java数据库连接,一种执行SQL的Java API,为多种关系数据库提供统一访问规范,由一组Java语言编写的类和接口组成.数 ...

  10. linux下查看CPU、内存、磁盘信息

    1.查看CPU信息# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数cat /proc/c ...