1. from xml.sax import saxutils
  2. html_str = """<!DOCTYPE html>
  3. <html>
  4. <head>
  5. <title>name</title>
  6. </head>
  7. <body>
  8. <h1>namejr</h1>
  9. <p>my name is namejr</p>
  10. <span>my age is <b>22</b> years old</span>
  11. <p>other string, such as "*", "@"</p>
  12. </body>
  13. </html>"""
  14.  
  15. # xml.sax.saxutils.escape(data[, entities={}])将html代码进行转义
  16.  
  17. # xml.sax.saxutils.escape(data) # 按照规定的进行转义,转义的内容:"<"/">"/"&" 对应"&lt;"/"&gt;"/"&amp;"
  18. print(saxutils.escape(html_str))
  19. """
  20. D:\笔记\python电子书\Python3>python index.py
  21. &lt;!DOCTYPE html&gt;
  22. &lt;html&gt;
  23. &lt;head&gt;
  24. &lt;title&gt;name&lt;/title&gt;
  25. &lt;/head&gt;
  26. &lt;body&gt;
  27. &lt;h1&gt;namejr&lt;/h1&gt;
  28. &lt;p&gt;my name is namejr&lt;/p&gt;
  29. &lt;span&gt;my age is &lt;b&gt;22&lt;/b&gt; years old&lt;/span&gt;
  30. &lt;p&gt;other string, such as "*", "@"&lt;/p&gt;
  31. &lt;/body&gt;
  32. &lt;/html&gt;
  33. """
  34.  
  35. # 如果想转义自己定义的字符就要使用到entities参数
  36. entities = {'*':'不知道写啥', '@':'更不知道写啥'}
  37. print(saxutils.escape(html_str, entities=entities))
  38. """
  39. D:\笔记\python电子书\Python3>python index.py
  40. &lt;!DOCTYPE html&gt;
  41. ...
  42. &lt;span&gt;my age is &lt;b&gt;22&lt;/b&gt; years old&lt;/span&gt;
  43. &lt;p&gt;other string, such as "不知道写啥", "更不知道写啥"&lt;/p&gt;
  44. &lt;/body&gt;
  45. &lt;/html&gt;
  46. """
  47. # xml.sax.saxutils.unescape() # 与xml.sax.saxutils.escape()相反

xml.sax.saxutils.quoteattr()

  1. from xml.sax import saxutils
  2. # xml.sax.saxutils.quoteattr() 与escape()相似,区别是quoteattr()将根据数据的内容选择引号,试图避免对字符串中的任何引号进行编码(只使用一种引号不编码,如果单双引号都在使用,会对双引号进行编码)
  3. html_str = "<element attr={}>".format(saxutils.quoteattr("ab' cd\"ef"))
  4. print(html_str)

xml.sax 笔记的更多相关文章

  1. sax方式解析XML学习笔记

    原理:对文档进行顺序扫描,当扫描到文档(document)开始与结束,元素开始与结束.文档结束等地方 通知事件处理函数,由事件处理函数相应动作然后继续同样的扫描,直至文档结束. 优点:消耗资源比较少: ...

  2. day0203 XML 学习笔记

    day02, 03 1. xml语言和作用 2. xml语法详解 2.1 xml 语法声明 2.1.1 encoding 属性 2.1.2 standalone 属性 2.2 xml 元素(Eleme ...

  3. SpringMVC org.xml.sax.SAXParseException: cvc-complex-type.2.4.c 报错处理方式

    使用SpringMVC的过程中需要访问静态文件,即在spring-servlet.xml文件中添加了 <mvc:default-servlet-handler /> 标签,以开启Sprin ...

  4. org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。

    二月 25, 2016 9:24:24 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRul ...

  5. XML学习笔记

    XML学习笔记 第一部分:XML简介 我们经常可以听到XML.HTML.XHTML这些语言,后两者比较清楚,一直不是很明白XML是什么,这里做一个总结. XML(eXtensible Markup L ...

  6. mybatis-config.xml简单笔记

    mybatis-config.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ...

  7. applicationContext.xml简单笔记

    applicationContext.xml简单笔记 <?xml version="1.0" encoding="UTF-8"?> <bean ...

  8. nested exception is org.xml.sax.SAXParseException; lineNumber: 8; columnNumber: 56; cvc-complex-type.2.4.c通配符的匹配很全面, 但无法找到元素 'dubbo:application' 的声明

    严重: Exception sending context initialized event to listener instance of class org.springframework.we ...

  9. XML学习笔记(2)--dom4j操作XML

    1. 介绍(四种方式的比较这部分转载自:http://www.blogjava.net/xcp/archive/2010/02/12/312617.html) 1)DOM(JAXP Crimson解析 ...

随机推荐

  1. float浮动,定位

    1 浮动定位    1.普通流定位        普通流,由称为文档流        块级元素:从上到下一个一个的排列        行内元素:一行内从左到右的排列    2.浮动定位         ...

  2. Fizz Buzz 问题

    要求: 给你一个整数n. 从 1 到 n 按照下面的规则打印每个数: 如果这个数被3整除,打印fizz. 如果这个数被5整除,打印buzz. 如果这个数能同时被3和5整除,打印fizz buzz. 示 ...

  3. mastering elasticsearch

    概念: Term: 它是搜索的基本单位,其表现形式为文本中的一个词. Token: 它是单个Term在所属Field中文本的呈现形式,包含了Term内容.Term类型.Term在文本中的起始及偏移位置 ...

  4. JavaBasic_05

    方法 简述:实现特定功能的代码块 格式 修饰符: 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…){           函数体;           return 返回值;} 方法格式 ...

  5. c日志宏

    仅供参考,不推荐 #ifdef _DEBUG #define LOGDEBUG(format, ...)\ {\ FILE *fp = fopen("nccli.log", &qu ...

  6. Gym .101933 Nordic Collegiate Programming Contest (NCPC 2018) (寒假gym自训第四场)

    (本套题算是比较温和吧,就是罚时有点高. B .Baby Bites 题意:给出一个婴儿给出的数组,有一些数字听不清楚,让你还原,问它是否是一个从1开始的一次增加的数组. 思路:从左往右依次固定,看是 ...

  7. //生成四位数的验证码--->

  8. HTTP/2及HTTP/3特性

    HTTP/2及HTTP/3特性 摘要: 学习 HTTP/2 与 HTTP/3. 前言 HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性 ...

  9. 《DSP using MATLAB》Problem 6.10

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  10. tomcat localhost

    启动tomcat后,登录本地localhost时,被要求输入用户名和密码,自己也从没有设置过啊,上网查找,原因如下: 机器装的oracle,它自带的httpserver的端口是8080,同时,tomc ...