xml自定义实体

自定义实体分为:一般实体和参数实体

1、自定义一般实体

demo8中的代码:

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT book (detail+)>
<!ELEMENT detail (name,author,publisher,price,url)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT url (#PCDATA)>

<!ENTITY bj "北京大学出版社">

对应的xml代码:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book SYSTEM "demo8.dtd">
<book>
	<detail>
		<name>XML</name>
		<author>李白</author>
		<publisher>&bj;</publisher>
		<price>22.5</price>
		<url>
			<![CDATA[
				<a href="#">链接1</a>
			]]>
		</url>
	</detail>
	<detail>
		<name>PHP</name>
		<author>杜甫</author>
		<publisher>&bj;</publisher>
		<price>22.5</price>
		<url>
			<![CDATA[
				<a href="#">链接2</a>
			]]>
		</url>
	</detail>
</book>

xml内部定义一般实体:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book SYSTEM "demo8.dtd"[
	<!ENTITY bj "北京大学出版社">
]>
<book>
	<detail>
		<name>XML</name>
		<author>李白</author>
		<publisher>&bj;</publisher>
		<price>22.5</price>
		<url>
			<![CDATA[
				<a href="#">链接1</a>
			]]>
		</url>
	</detail>
	<detail>
		<name>PHP</name>
		<author>杜甫</author>
		<publisher>&bj;</publisher>
		<price>22.5</price>
		<url>
			<![CDATA[
				<a href="#">链接2</a>
			]]>
		</url>
	</detail>
</book>


2、自定义参数实体

参数实体就是在普通实体名字前面加上%”。

dtd中的代码:

<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % p "test"> <!-- 先声明后使用 -->
<!ELEMENT roster ((%p;)+)>
<!ELEMENT %p; (name, sex, birthday, score?, skill+)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>
<!ELEMENT score (#PCDATA)>
<!ELEMENT skill (#PCDATA)>
<!ATTLIST %p; id ID #REQUIRED>

对应的xml代码:

demo1.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE roster  SYSTEM "demo11.dtd"[
	<!ENTITY % p "teacher">  <!-- 给参数赋值 -->
]>
<roster>
	<teacher id="s">
		<name></name>
		<sex></sex>
		<birthday></birthday>
		<skill></skill>
	</teacher>
</roster>

demo2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE roster SYSTEM "demo11.dtd"[
	<!ENTITY % p "student"> <!-- 给参数赋值 -->
]>
<roster>
	<student id="s">
		<name></name>
		<sex></sex>
		<birthday></birthday>
		<skill></skill>
	</student>
</roster>


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值