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 相关文章推荐
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
Scrapy爬虫实例讲解_校花网
Oct 23 Python
python爬虫获取新浪新闻教学
Dec 23 Python
python爬虫获取小区经纬度以及结构化地址
Dec 30 Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
python如何删除文件中重复的字段
Jul 16 Python
解决tensorflow打印tensor有省略号的问题
Feb 04 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
Python作用域与名字空间原理详解
Mar 21 Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 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之第七天
2006/10/09 PHP
PHP语法速查表
2007/01/02 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
php模板引擎技术简单实现
2016/03/15 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
php服务器的系统详解
2019/10/12 PHP
点图片上一页下一页翻页效果
2008/07/09 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
Bootstrap table使用方法总结
2017/05/10 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Python JSON格式数据的提取和保存的实现
2019/03/22 Python
python3中eval函数用法使用简介
2019/08/02 Python
python循环输出三角形图案的例子
2019/11/22 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
办公室打字员岗位职责
2014/04/16 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
学籍证明模板
2015/06/18 职场文书
财产分割协议书
2016/03/22 职场文书