您的位置:首页 > 编程语言 > PHP开发

PHP DOM验证xml文档是否符合DTD验证

2018-01-21 11:59 585 查看
validate.php:

<?php
header("Content-Type:text/html;charset=utf-8");
$dom = new DOMDocument('1.0','utf-8');
//$dom->validateOnParse = true;  //(第一种方法通过属性验证)强制加载外部DTD(是否通过DTD文件验证xml文档,默认为false)

@$dom->load('note.xml');   //这个@表示会强制加载外部DTD文件。
if (@$dom->validate()) {  //(第二种方法通过方法验证)这个@表示屏蔽验证不通过时的提示信息。
echo "yes";
} else {
echo "no";
}

// $body = $dom->getElementsByTagName('body')->item(0);
// echo $body->nodeValue;

note.xml:
<?xml version = '1.0' encoding = 'utf-8'?>
<!DOCTYPE note SYSTEM 'note.dtd'>
<note>
<to>明月</to>
<from>清风</from>
<heading>思念</heading>
<body>
月到<strong>中秋</strong>分外明,人到中秋倍无助
%company;   <!--参数实体只能用于DTD内部-->
©right;  <!--一般实体可以用于xml-->
</body>
<br/>
</note>

note.dtd:

<!ELEMENT note (to,from,heading,body,br,any)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA|strong)*>
<!ELEMENT strong (#PCDATA)>
<!ELEMENT br EMPTY>
<!ELEMENT any ANY>

<!ENTITY % company '商务印书馆'>   <!--定义参数实体,参数实体只能在DTD中使用-->
<!ENTITY copyright "2015~2022 %company; 版权所有">   <!--定义一般实体,一般实体可以在xml中使用-->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php dom xml