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实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
代码讲解Python对Windows服务进行监控
Feb 11 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
python日期相关操作实例小结
Jun 24 Python
通过python实现弹窗广告拦截过程详解
Jul 10 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
Jul 23 Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 Python
PyTorch学习:动态图和静态图的例子
Jan 06 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
python 判断一组数据是否符合正态分布
Sep 23 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
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
JS解析XML的实现代码
2009/11/12 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
2019/04/10 jQuery
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
跟老齐学Python之玩转字符串(2)
2014/09/14 Python
import的本质解析
2017/10/30 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
Python 学习教程之networkx
2019/04/15 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
python excel转换csv代码实例
2019/08/26 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
Keras 使用 Lambda层详解
2020/06/10 Python
蔻驰英国官网:COACH英国
2020/07/19 全球购物
经典优秀个人求职自荐信格式
2013/09/25 职场文书
护理专业推荐信
2013/11/07 职场文书
国培教师自我鉴定
2014/02/12 职场文书
祖国在我心中的演讲稿
2014/05/04 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书