前提

我想使用HTML Purifier将

标签转换为

标签,以保留元素的内联样式,例如Hi there.会转向

Hi there.

。我正在研究自定义标签和TagTransform类的组合。

当前设置

在我的配置部分,我目前正在这样做:

$htmlDef = $this->configuration->getHTMLDefinition(true);

// defining the element to avoid triggering 'Element 'body' is not supported'

$bodyElem = $htmlDef->addElement('body', 'Block', 'Flow', 'Core');

$bodyElem->excludes = array('body' => true);

// add the transformation rule

$htmlDef->info_tag_transform['body'] = new HTMLPurifier_TagTransform_Simple('div');

...以及通过配置指令允许

及其style(以及class和id)属性(它们是一个工作的大型列表的一部分,该列表被解析为HTML.AllowedElements和HTML.AllowedAttributes)。

我已经关闭了定义缓存。

$config->set('Cache.DefinitionImpl', null);

不幸的是,在这个设置中,似乎HTMLPurifier_TagTransform_Simple从来没有调用它的transform()方法。

HTML.Parent?

我认为罪魁祸首是我的HTML.Parent,设定为'div',因为很自然地,

不允许儿童元素。但是,将HTML.Parent设置为'html'会让我知道:

ErrorException:无法将无法识别的元素用作父级

添加...

$htmlElem = $htmlDef->addElement('html', 'Block', 'Flow', 'Core');

$htmlElem->excludes = array('html' => true);

...摆脱该错误消息,但仍然没有转换标签 - 它被删除了。

添加...

$htmlElem = $htmlDef->addElement('html', 'Block', 'Custom: head?, body', 'Core');

$htmlElem->excludes = array('html' => true);

...也没有做任何事,因为它给我一个错误信息:

ErrorException: Trying to get property of non-object

[...]/library/HTMLPurifier/Strategy/FixNesting.php:237

[...]/library/HTMLPurifier/Strategy/Composite.php:18

[...]/library/HTMLPurifier.php:181

[...]

我现在仍在调整最后一个选项,试图找出我需要提供的确切语法,但如果有人知道如何根据他们自己过去的经验帮助我,我会欣赏正确方向的任何指示。

HTML.TidyLevel?

作为我能想象的唯一罪魁祸首,我的HTML.TidyLevel被设定为'heavy'。我还没有尝试所有可能的星座,但到目前为止,这没有任何区别。

(因为我只是在接触它,所以我很难回想起我已经尝试过哪些星座,以免我在这里列出它们,但是因为我缺乏自信,所以我不会错过我做过的事情或者误报了一些事情。我可能会在以后做完一些专门测试的时候编辑这个部分!)

完整配置

我的配置数据存储在JSON中,然后解析为HTML Purifier。这是文件:

{

"CSS" : {

"MaxImgLength" : "800px"

},

"Core" : {

"CollectErrors" : true,

"HiddenElements" : {

"script" : true,

"style" : true,

"iframe" : true,

"noframes" : true

},

"RemoveInvalidImg" : false

},

"Filter" : {

"ExtractStyleBlocks" : true

},

"HTML" : {

"MaxImgLength" : 800,

"TidyLevel" : "heavy",

"Doctype" : "XHTML 1.0 Transitional",

"Parent" : "html"

},

"Output" : {

"TidyFormat" : true

},

"Test" : {

"ForceNoIconv" : true

},

"URI" : {

"AllowedSchemes" : {

"http" : true,

"https" : true,

"mailto" : true,

"ftp" : true

},

"DisableExternalResources" : true

}

}

(URI.Base,URI.Munge和Cache.SerializerPath也设置了,但是我已经在这个粘贴中删除了它们。另外,HTML.Parent告诫:如上所述,通常,这设置为'div'。)

html标签 lt heavy gt,HTML Purifier:转换< body>到< div>相关推荐

  1. struts2 s:property/标签的使用--输出时间格式转换

    1.按需输出特定长度的字符 例:<s:property val ="name.s string(0,4)" />,只输出name的前四个字符,其中name是我需要输出的 ...

  2. ios转换html标签,iOS html标签解析解决方案

    由于项目是基于b/s结构,因为在pc端上是没有客户端这概念只有浏览器,而对于web与移动端的关系,实际上还是类似于C/S结构,因此web端与web端的通信是通过发送HTML5标签来实现,常规的做法中p ...

  3. mybatis trim标签_MyBatis学习笔记

    MyBatis开发文档: mybatis - MyBatis 3​mybatis.org mapper接口开发的四个规范: XxxMapper.xml配置文件的名称命名空间值必须是mapper接口的全 ...

  4. 解析错误:相邻的JSX元素必须包装在一个封闭标签中

    本文翻译自:Parse Error: Adjacent JSX elements must be wrapped in an enclosing tag I am trying to set up m ...

  5. JSTL标签的用法详解

    在JSP中写Java代码是一件很恶心的事情,代码量少的话还可以,要是多的话,就蛋疼了,整个页面都是<%  %>所以EL表达式和JSTL就应运而生了,这里我们注重讲解一下JSTL标签的使用: ...

  6. python字符串标签转化_如何在TensorFlow中将字符串标签转换为一个热向量?

    我是TensorFlow的新手,想读一个逗号分隔值(csv)文件,它包含两列,第1列是索引,第2列是标签字符串.我有以下代码,它逐行读取csv文件中的行,并且我能够使用print语句正确地获取csv文 ...

  7. java web 自定义标签_JavaWeb学习——自定义标签

    自定义标签 一.自定义标签概述 使用标准JSP访问.操作JavaBean,是实现展现(HTML)与业务实现(Java代码)分离的第一步.然而,标准方法功能不够强大,以至于开发者无法仅仅使用它们开发应用 ...

  8. ACL'21 | 弱标签的垃圾数据,也能变废为宝!

    文 | LawsonAbs 编 | 小戏 是不是感觉 NER 领域效果提升太过困难?最近一篇来自 Amazon 的文章提出使用强弱标签结合的方式来解决 NER 的问题.强弱标签结合其实非常立足实际的数 ...

  9. 个人永久性免费-Excel催化剂功能第75波-标签式报表转标准数据源

    数据处理永远是数据分析工作中重中之重的任务,大部分人深深地陷入在数据处理的泥潭中,今天Excel催化剂再接再厉,在过往已提供了主从结构报表数据源的数据转换后,再次给大家送上标签式报表数据源的数据转换操 ...

最新文章

  1. hashids php 如何使用,Hashids使用
  2. pandas创建内容全是0的dataframe、pandas基于随机整数、随机浮点数创建dataframe(random numbers)
  3. 记linux与Windows之间实现文件实时同步的方案
  4. 阿里nacos安装及使用指南
  5. div与span区别及用法
  6. 别再说PHP已死了,它活得好着呢
  7. android 号码查联系人,Android联系人查询
  8. 2017年秋招-广联达面试及思考
  9. 十二个月内 仅仅依靠Google打造成功网站
  10. 学python能做什么类型的工作-最适合学Python的几类人,有你吗?
  11. vs下qt的信号与槽实现
  12. CSS绝对底部布局 Sticky footer
  13. Windows 性能监视器概述
  14. Vue和Springboot实现SM4加密和解密(前端可加密,后端可加解密,MD5同理)
  15. 有关802.11的Beacon帧
  16. Android网络编程入门解析
  17. Kafka使用报错Subscription to topics, partitions and pattern are mutually exclusive
  18. 上门洗车系统搭建解决方案-上门服务系统
  19. 互联网公司招聘--奇虎360--技术类--2013年笔试题
  20. Unity之创建文件报错

热门文章

  1. 利用Excel饼图画出八等份圆
  2. 内存条 udimm rdimm 等和 ECC 功能
  3. Windows Azure为锤子科技Smartisan T1手机提供“工匠”级云服务
  4. 云呐|动环监控设备维护与常见故障处理
  5. 游戏开发20课 tilemap 绘制
  6. 2018(农历年)封山之作,和我一起嚼烂Git(两万字长文)
  7. 展会中,你做得够好么?
  8. wordpress插件_如何使用适用于WordPress的长格式Storybuilder插件
  9. 实战篇--优惠券秒杀
  10. python爬虫京东口红销售排行