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之import机制详解
Jul 03 Python
跟老齐学Python之类的细节
Oct 13 Python
python通过邮件服务器端口发送邮件的方法
Apr 30 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
Python爬取三国演义的实现方法
Sep 12 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
Jan 23 Python
python通过Windows下远程控制Linux系统
Jun 20 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
如何在Windows中安装多个python解释器
Jun 16 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
Python 数据可视化神器Pyecharts绘制图像练习
Feb 28 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分页思路以及在ZF中的使用
2012/05/30 PHP
CI框架中zip类应用示例
2014/06/17 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
php中smarty区域循环的方法
2015/06/11 PHP
php根据日期显示所在星座的方法
2015/07/13 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
Laravel框架实现超简单的分页效果示例
2019/02/08 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
用javascript操作xml
2006/11/04 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
简单的js表格操作
2016/09/24 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
python读取中文txt文本的方法
2018/04/12 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
如何整合JQuery和Prototype
2014/01/31 面试题
工作检讨书大全
2015/01/26 职场文书
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
Python 正则模块详情
2021/11/02 Python
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏