from xml.sax import saxutils
html_str = """<!DOCTYPE html>
<html>
<head>
<title>name</title>
</head>
<body>
<h1>namejr</h1>
<p>my name is namejr</p>
<span>my age is <b>22</b> years old</span>
<p>other string, such as "*", "@"</p>
</body>
</html>""" # xml.sax.saxutils.escape(data[, entities={}])将html代码进行转义 # xml.sax.saxutils.escape(data) # 按照规定的进行转义,转义的内容:"<"/">"/"&" 对应"&lt;"/"&gt;"/"&amp;"
print(saxutils.escape(html_str))
"""
D:\笔记\python电子书\Python3>python index.py
&lt;!DOCTYPE html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;name&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;namejr&lt;/h1&gt;
&lt;p&gt;my name is namejr&lt;/p&gt;
&lt;span&gt;my age is &lt;b&gt;22&lt;/b&gt; years old&lt;/span&gt;
&lt;p&gt;other string, such as "*", "@"&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
""" # 如果想转义自己定义的字符就要使用到entities参数
entities = {'*':'不知道写啥', '@':'更不知道写啥'}
print(saxutils.escape(html_str, entities=entities))
"""
D:\笔记\python电子书\Python3>python index.py
&lt;!DOCTYPE html&gt;
...
&lt;span&gt;my age is &lt;b&gt;22&lt;/b&gt; years old&lt;/span&gt;
&lt;p&gt;other string, such as "不知道写啥", "更不知道写啥"&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
"""
# xml.sax.saxutils.unescape() # 与xml.sax.saxutils.escape()相反

xml.sax.saxutils.quoteattr()

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

    <meta-data android:name="keepScreenOn" android:value="true"> </meta-dat ...

  2. FZU 2272 Frog 第八届福建省赛 (鸡兔同笼水题)

    Problem Description Therearex frogs and y chicken in a garden. Kim found there are n heads and m leg ...

  3. Go parameter passing

    package main import ( "fmt" ) func main() { fmt.Println("Hello, playground") var ...

  4. 二叉树求逆序对(伪AC 23333)

    成链的时候 是最坏情况 O(n^2)的复杂度呢! 按照输入的数据 一个一个的插入建树 然后维护左右儿子的个数  (我们规定, 左儿子 小于  父亲  右儿子大于父亲) 往左走 说明存在逆序对 逆序对的 ...

  5. linux 禁ping和开启ping方法

    Linux 禁ping和开启ping操作# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all如果要恢复,只要:# echo 0 > /pro ...

  6. 实时获取input输入框中的值

    //输入框正在输入时 $("#ipt").on('input',function(){ if(!($('#ipt').val()=='')){ $(".cancle_ic ...

  7. loadrunner如何对mysql进行增删改查

    libraries.zip  地址:链接:https://pan.baidu.com/s/1kIZ2aBCOFSJ9l727MxgIKQ 密码:40vq *   说明一下,因为 lr 有很多库文件都没 ...

  8. 1001.A+B Format (20)题目解答

    前言 最开始看到这个题目,我的第一个想法是有没有那种输出格式可以直接拿来用的,然后我百度了一下,想偷懒,然而并没有这种东西.只好动动自己的脑子了. 关于GitHub 这个问题,当初我弄了五天才建立好联 ...

  9. java-接口的概述及其特点

    1.接口概述: - 从狭义的角度讲就是指java中的interface - 从广义的角度讲对外提供规则的都是接口 2.接口特点: - 接口中定义的全都是抽象方法. - 接口用关键字interface表 ...

  10. L3-019 代码排版 (30 分)

    某编程大赛中设计有一个挑战环节,选手可以查看其他选手的代码,发现错误后,提交一组测试数据将对手挑落马下.为了减小被挑战的几率,有些选手会故意将代码写得很难看懂,比如把所有回车去掉,提交所有内容都在一行 ...