python生成xml时规定dtd实例方法


Posted in Python onSeptember 21, 2020

一、DTD文档的声明及引用

1.内部DTD文档

<!DOCTYPE 根元素 [定义内容]>

2.外部DTD文档

引入外部的DTD文档分为两种:

(1)当引用的DTD文件是本地文件的时候,用SYSTEM标识,并写上”DTD的文件路径”,如下:

<!DOCTYPE 根元素 SYSTEM "DTD文件路径">

(2)如果引用的DTD文件是一个公共的文件时,采用PUBLIC标识,如下方式:

<!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD文件的URL">

比如下例:

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/ 
web-app_2_3.dtd">

二、DTD基本语法:

<!ELEMENT NAME CONTENT>

其中:

- ELEMENT是关键字,是不能修改的

- NAME表示元素名称

- CONTENT是元素类型,必须要大写!CONTENT的内容有三种写法:

(1)EMPTY——表示该元素不能包含子元素和文本,但可以有属性。

(2)ANY——表示该元素可以包含任何在该DTD中定义的元素内容

(3)#PCDATA——可以包含任何字符数据,但是不能在其中包含任何子元素

三、DTD元素的组合类型:

DTD中这样规定:

<!ELEMENT 家庭(人+,家电*)>

这个DTD规定了家庭元素中可以有1到多个”人”这个子元素,也可以有0到多个”家电”这个子元素。其中的加号”+”和星号”*”的含义与正则表达式中的含义一致。

XML这样写:

<家庭>
    <人 名字="张晓明" 性别="男" 年龄="25"/>
    <人 名字="李小钢" 性别="男" 年龄="36" 爱好="作个教育家和伟人"/>
    <家电 名称="彩电" 数量="3"/>
</家庭>

关于组合类型,有下述的的修饰符可以使用:

python生成xml时规定dtd实例方法

四、属性定义

DTD中属性的定义是这样的:

<!ATTLIST 元素名称
    属性名称 类型 属性特点
    属性名称 类型 属性特点......  
>

其中,属性的类型有下面5种:

(1) CDATA
(2) ID
(3) IDREF/IDREFS
(4) Enumerated
(5) ENTITY/ENTITIES

属性的特点有如下4种:

(1) #REQUIRED,表示这个属性必须给,不给就报错
(2) #IMPLIED,表示这个属性可以给也可以不给
(3) #FIXED value,表示这个属性必须给一个固定的value值
(4) Default value,表示这个属性如果没有值,就分配一个默认的value值

到此这篇关于python生成xml时规定dtd实例方法的文章就介绍到这了,更多相关python 生成xml时如何规定dtd内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 异常处理实例详解
Mar 12 Python
Python脚本实现12306火车票查询系统
Sep 30 Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 Python
selenium+python实现1688网站验证码图片的截取功能
Aug 14 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
Apr 01 Python
Python远程视频监控程序的实例代码
May 05 Python
Python object类中的特殊方法代码讲解
Mar 06 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 Python
通过实例简单了解python yield使用方法
Aug 06 Python
Python pymsql模块的使用
Sep 07 Python
python 匿名函数与三元运算学习笔记
Oct 23 Python
Python实现Telnet自动连接检测密码的示例
Apr 16 Python
Python中的特殊方法以及应用详解
Sep 20 #Python
matplotlib 三维图表绘制方法简介
Sep 20 #Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 #Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 #Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 #Python
python中random.randint和random.randrange的区别详解
Sep 20 #Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
Sep 20 #Python
You might like
精通php的十大要点(上)
2009/02/04 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
一个tab标签切换效果代码
2009/03/27 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
2018/10/10 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
用Python写冒泡排序代码
2016/04/12 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
利用python循环创建多个文件的方法
2018/10/25 Python
Python中请不要再用re.compile了
2019/06/30 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
Python 如何对文件目录操作
2020/07/10 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
2021/02/16 Python
西班牙语在线票务市场:SuperBoletería
2019/06/10 全球购物
小学竞选班长演讲稿
2014/09/09 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
求职意向书范本
2015/05/11 职场文书
《吃水不忘挖井人》教学反思
2016/02/22 职场文书
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python