xml.libxml2_添加带tagname的xml文本(xmlNewTextChild)
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><p>Your SVG viewer cannot display html.</p><p font-size="16px">Your SVG viewer cannot display html.</p></text>
(1)、但是 函数xmlNewText(...) 会将 尖括号 翻译成 “<”和“>”
(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)的更多相关文章
- Bean XML 配置(1)- 通过XML配置加载Bean
系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Contro ...
- C#读取带命名空间的xml,xaml文件的解决方案
使用C#读取xml文件有三种常用的方式: 1.xmlDocument 2.XmlTextReader 3.Linq To Xml 但是这些方式在读写有些带命名空间的xml时就不知道怎么办了(例如把xa ...
- XML系列之--Linq操作带属性的XML(四)
关于XML,之前解析过电文收发方面的,就是所谓的带表头.前缀(命名空间)SOAP格式.这次需求是解析一个xml的模板(xls内容),然后填充数据,最后保存.需要时可转换xls.pdf等文件.关于这种带 ...
- C# 解析带前缀的Xml节点内容
一般的xml文件相信大家都会解析了,但是遇到有命名空间的带前缀的xml,对于新手可能会有点问题.我这里在论坛解答的时候就遇到过一题,见怎么获取XML节点里面的内容,在线求教.这里给大家演示一下. 他的 ...
- 由“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 ...
- (转)如何在maven的pom.xml中添加本地jar包
1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下所示: 1 groupId 2 artifactId 3 version 4 jar包的依赖 如果要将 ...
- XML记一次带命名空间的xml读取
public static void ReadXML(string xmlUrl) { //判断文件是否存在 if (!File.Exists(xmlUrl)) { Console.WriteLine ...
- (转)如何在maven的pom.xml中添加本地jar包
转载自: https://www.cnblogs.com/lixuwu/p/5855031.html 1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下 ...
- pom.xml中添加远程仓库
maven的pom.xml中添加远程仓库 <repositories> <repository> <id>mvnrepository</id> < ...
随机推荐
- java JVM虚拟机
JVM垃圾处理方法(标记清除.复制.标记整理) 1.标记清除 标记阶段:先通过根节点,标记所有从根节点开始的对象,未被标记的为垃圾对象. 清除阶段:清除所有未被标记的对象. 2.复制算法 将原有的空间 ...
- JavaScript基础知识(数组的方法)
数组的方法(15个) 对象数据类型: 数组成员有一个与之对应的索引 length : 代表数组成员的个数: 操作改变数组一些方法:这些数组的方法都是内置的: // 1. 方法作用: // 2. 方法的 ...
- day12 十二、开放封闭、装饰器
一.nonlocal关键词 # global # num = # def fn(): # global num # L>G 将局部的名字与全局统一 # num = # fn() # print( ...
- SVN和Git对比梳理
在日常运维工作中,经常会用到版本控制系统,目前用到最广泛的版本控制器就是SVN和Git,那么这两者之间有什么不同之处呢?SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版 ...
- ELK基础原理
搜索引擎 索引组件: 获取数据-->建立文档-->文档分析-->文档索引(倒排索引) 搜索组件: 用户搜索接口-->建立查询(将用户键入的信息转换为可处理的查询对象) ...
- Ceph与Gluster之开源存储的对比
一.Ceph与Gluster之开源存储的对比 一.Ceph与Gluster的原理对比 Ceph和Gluster是Red Hat旗下的成熟的开源存储产品,Ceph与Gluster在原理上有着本质上的不同 ...
- Tomcat服务安全加固
Tomcat服务默认启用了管理后台功能,使用该后台可直接上传 war 文件包对站点进行部署和管理.由于运维人员的疏忽,可能导致管理后台存在空口令或者弱口令的漏洞,使得黑客或者不法分子可以利用该漏洞直接 ...
- WinDBG相关
WinDBG 技巧:如何生成Dump 文件(.dump 命令) 程序崩溃(crash)的时候, 为了以后能够调试分析问题, 可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为d ...
- vue 之iview
iView-admin2.0:https://admin.iviewui.com/ 组件:https://www.iviewui.com/docs/guide/install
- python操作excel的读、计算、写----xlrd、copy
import xlrd from xlutils.copy import copy class ExcelUtil: def __init__(self,excel_path=None,index=N ...