亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP中使用SimpleXML檢查XML文件結構實例

2020-03-22 17:48:13
字體:
來源:轉載
供稿:網友
利用 SimpleXML 去檢查 XML 結構是否符合規格,為了讓這個程序可以多用途,采用了一個基準文件的作為結構準則,依據里面定義的節點跟屬性,去檢查文件是否符合基本要求的格式。復制代碼 代碼如下:
php

/**檢查 XML 文件結構
* @param string $baseFilePath 基準結構文件
* @param string $checkFilePath 待檢查文件
* @return bool 當結構與基準文件相符合時則傳遞 true,否則是 false
* */
function checkXmlFileStructure($baseFilePath,$checkFilePath){
/*開啟 Base File*/
if(!file_exists($baseFilePath)){ return false; }
$base = simplexml_load_file($baseFilePath);
if($base===false){ return false; }

/*開啟 Check File*/
if(!file_exists($checkFilePath)){ return false; }
$check = simplexml_load_file($checkFilePath);
if($check===false){ return false; }

/*比較起始點的名稱*/
if($base- getName() != $check- getName()){ return false; }

/*比較結構*/
return checkXmlStructure($base,$check);
}

/**檢查 XML 結構
* @param SimpleXMLElement $base 基準結構對象
* @param SimpleXMLElement $check 待檢查 XML 對象
* @return bool 當結構與基準對象相符合時則傳遞 true,否則是 false
* */
function checkXmlStructure($base,$check){
/*檢查屬性*/
foreach ($base- attributes() as $name = $baseAttr){
/*必要的屬性不存在*/
if(!isset($check- attributes()- $name)){ return false; }
}

/*當沒有子節點時,則檢查對象也不能有子節點*/
if(count($base- children())==0){
return (count($check- children())==0);
}

/*將檢查對象的子節點分群*/
$checkChilds = array();
foreach($check- children() as $name = $child){
$checkChilds[$name][] = $child;
}

/*檢查子節點*/
$checked = array();
foreach($base- children() as $name = $baseChild){
/*跳過已經檢查的子節點*/
if(in_array($name, $checked)){ continue; }
$checked[] = $name;

/*檢查必要的子節點是否存在*/
if(emptyempty($checkChilds[$name])){ return false; }

foreach ($checkChilds[$name] as $child){
/*遞回檢查子節點*/
if( !checkXmlStructure($baseChild, $child) ){ return false; }
}
}

return true;
}


/*==============================================================================*/

if(isset($_SERVER['argv'])){
parse_str(preg_replace('/&[/-]+/','&',join('&',$_SERVER['argv'])), $_GET);

if(emptyempty($_GET['base_file']) || emptyempty($_GET['check_file'])){
echo "Run: ".basename(__FILE__)." base_file=base.xml check_file=check.xml/n"; exit(1);
}

exit( checkXmlFileStructure($_GET['base_file'],$_GET['check_file']) 0 : 1);

}else{
if(emptyempty($_GET['base_file']) || emptyempty($_GET['check_file'])){
echo "Run: ".basename(__FILE__)." base_file=base.xml&check_file=check.xml br / exit;
}

echo( checkXmlFileStructure($_GET['base_file'],$_GET['check_file']) '1' : '0');
}
使用方式(shell)
復制代碼 代碼如下:
php check_xml_file_structure.php base_file=base.xml check_file=check.xml

if [ "j$ " != "j0" ]; then
echo "Run Error"
fi
測試范例 1
base_1.xml
復制代碼 代碼如下:
xml version="1.0" encoding="UTF-8"
items
item
Category Category文字 /Category
Title Title文字 /Title
/item
/items
check_1.xml

xml version="1.0" encoding="UTF-8"
items
item
Category Category文字 /Category
Title Title文字 /Title
/item
item
Category Category文字 /Category
Title Title文字 /Title
Description Description文字 /Description
/item
/items
測試范例 2
base_2.xml
復制代碼 代碼如下:
xml version="1.0" encoding="UTF-8"
items
item category="Category文字" Title="Title文字"/
/items
check_2.xml
xml version="1.0" encoding="UTF-8"
items
item category="Category文字" Title="Title文字" Description="Description文字" /
item category="Category文字" Title="Title文字" /
item category="Category文字" Title="Title文字" Description="Description文字" /
/items
PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久人91精品久久久久久不卡| 日韩av网址在线| 91色在线观看| 777国产偷窥盗摄精品视频| 欧美一区二区大胆人体摄影专业网站| 91夜夜未满十八勿入爽爽影院| 日本一区二区三区在线播放| 欧美激情免费观看| 91精品在线看| 视频在线观看一区二区| 亚洲级视频在线观看免费1级| 国产成人一区三区| 国产综合在线观看视频| 久久99亚洲热视| 国产精品video| 国产精品18久久久久久首页狼| 国产午夜精品理论片a级探花| 精品亚洲一区二区三区在线播放| 疯狂做受xxxx高潮欧美日本| 在线播放国产一区中文字幕剧情欧美| 日本午夜人人精品| 欧美一乱一性一交一视频| 亚洲xxx视频| 色综合天天狠天天透天天伊人| 2019国产精品自在线拍国产不卡| 久久免费精品日本久久中文字幕| 中文字幕在线看视频国产欧美在线看完整| 91免费看国产| 国产69久久精品成人| 欧美激情视频免费观看| 亚洲xxxx做受欧美| 8x海外华人永久免费日韩内陆视频| 久久影视电视剧免费网站清宫辞电视| 国产亚洲欧美一区| 欧美精品情趣视频| 欧美性猛交xxxx乱大交3| 亚洲一区美女视频在线观看免费| 日韩中文字幕免费| 欧美老肥婆性猛交视频| 久久亚洲综合国产精品99麻豆精品福利| 亚洲一区二区黄| 国产精品色婷婷视频| 欧美在线视频观看免费网站| 久久久久亚洲精品成人网小说| 欧美在线性爱视频| 91久久精品国产| 日韩欧美一区视频| 国产精品免费久久久久久| 成人黄色网免费| 欧美色道久久88综合亚洲精品| 成人在线小视频| 日韩在线视频观看正片免费网站| 日韩精品在线免费观看| 亚洲第一国产精品| yellow中文字幕久久| 欧美高清视频一区二区| 国产极品jizzhd欧美| 中文字幕在线看视频国产欧美在线看完整| 日韩av在线免费看| 国产91精品久| 国产亚洲日本欧美韩国| 亚洲第一福利网| 日本韩国欧美精品大片卡二| 亚洲天堂网站在线观看视频| 欧美成人免费在线观看| 国产91精品黑色丝袜高跟鞋| 中文字幕精品www乱入免费视频| www.欧美三级电影.com| 欧美精品成人在线| 高清在线视频日韩欧美| 国产精品久久久久久中文字| 亚洲精品一区二区久| 久久99久久亚洲国产| 社区色欧美激情 | 91tv亚洲精品香蕉国产一区7ujn| 激情懂色av一区av二区av| 亚洲国产中文字幕在线观看| 欧美一级电影在线| 亚洲视频777| 精品少妇一区二区30p| 精品国产一区二区三区久久久| 欧美大片网站在线观看| 精品中文字幕在线| 欧美重口另类videos人妖| 亚洲综合日韩中文字幕v在线| 亚洲国产日韩欧美在线图片| 欧洲精品在线视频| 亚洲人成欧美中文字幕| 国产精品都在这里| 免费不卡欧美自拍视频| 日韩精品视频免费在线观看| 亚洲国产成人爱av在线播放| 日韩精品在线免费观看视频| 高清欧美一区二区三区| 欧美性猛交99久久久久99按摩| 日韩二区三区在线| 在线播放日韩欧美| 狠狠久久亚洲欧美专区| 欧美大学生性色视频| 欧美激情中文字幕在线| 亚洲精品一区二三区不卡| 亚洲一区二区精品| 久久久久久久久久国产| 精品国产电影一区| 亚洲男人天堂久| 九九热这里只有在线精品视| 亚洲第一av网站| 欧美日韩国产中文字幕| 美女久久久久久久久久久| 中文字幕国产日韩| 欧美激情在线一区| 亚洲在线免费看| 亚洲欧美日韩中文在线| 亚洲精品成人网| 久久久伊人欧美| 国内偷自视频区视频综合| 97香蕉久久夜色精品国产| 国产日韩精品在线播放| 精品国产精品三级精品av网址| 国产一区二区激情| 疯狂做受xxxx欧美肥白少妇| 精品视频一区在线视频| 日韩av高清不卡| 国产乱肥老妇国产一区二| 国产精品久久久| 欧美成人四级hd版| 精品一区电影国产| 中文字幕亚洲天堂| 97视频在线观看视频免费视频| 日韩一中文字幕| 国产精品69av| 久久深夜福利免费观看| 中文字幕国产亚洲| 欧美丝袜一区二区| 久久久久久久久久亚洲| 亚洲欧美资源在线| 国产精品免费一区二区三区都可以| 国产日韩在线看| 成人av色在线观看| 九九热在线精品视频| 一区二区三区国产在线观看| 毛片精品免费在线观看| 精品久久久一区| 国产91ⅴ在线精品免费观看| 精品国产一区二区三区久久久狼| 国产精品激情av电影在线观看| 亚洲欧美综合精品久久成人| 久久久久国产一区二区三区| 视频直播国产精品| 亚洲欧洲自拍偷拍| 丝袜亚洲另类欧美重口| 91福利视频在线观看| 日韩av日韩在线观看| 岛国av午夜精品| 日韩最新中文字幕电影免费看| 日韩中文综合网| 欧美理论电影在线观看| 国a精品视频大全| 国产成人精品久久| 亚洲国产中文字幕在线观看| 国产精品久久久久久久电影| 日韩一区二区福利| 日韩视频免费大全中文字幕| 福利一区福利二区微拍刺激|