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

首頁 > 開發 > PHP > 正文

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

2024-05-04 23:29:52
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP中使用SimpleXML檢查XML文件結構實例,本文講解使用SimpleXML來檢查一個XML文件是否符合規范的方法,需要的朋友可以參考下
 

利用 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文字" style="padding: 0px 0px 20px; margin: 0px; clear: both; overflow: hidden; width: 680px; color: rgb(0, 0, 0); font-family: Tahoma, Helvetica, Arial, 宋體, sans-serif; background-color: rgb(247, 252, 255);">  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美va欧美va香蕉在| 欧美人交a欧美精品| 亚洲一区二区三区毛片| 一区二区三区国产在线观看| 亚洲另类激情图| 91精品国产91久久久久久不卡| 欧美日韩加勒比精品一区| 亚洲久久久久久久久久| 日韩精品在线看| 欧美午夜片欧美片在线观看| 欧美日韩aaaa| 精品国产91久久久| 久久不射热爱视频精品| 国产91九色视频| 亚洲国产高清福利视频| 欧美老女人xx| 欧美日韩免费在线观看| 国产精品吹潮在线观看| 亚洲精品福利免费在线观看| 久久伊人精品视频| 国产不卡一区二区在线播放| 国产精品视频一区二区高潮| 欧美日韩爱爱视频| 久久精品国产电影| 欧美激情视频在线| 日韩国产欧美精品在线| 欧美孕妇与黑人孕交| 亚洲人成77777在线观看网| 91wwwcom在线观看| 一区二区欧美在线| 免费av一区二区| 日本在线精品视频| 亚洲加勒比久久88色综合| 日本道色综合久久影院| 久久精品中文字幕免费mv| 国产精品黄色av| 久久久亚洲国产| 欧美精品久久久久| 亚洲视频电影图片偷拍一区| 欧美一区三区三区高中清蜜桃| 91国语精品自产拍在线观看性色| 国产精品久久久久久网站| 热久久视久久精品18亚洲精品| 亚洲丁香婷深爱综合| 国产日韩欧美自拍| 日韩亚洲精品电影| 日韩毛片在线观看| 久久精品成人一区二区三区| 欧美性开放视频| 亚洲电影免费观看高清完整版在线| 91国产美女视频| 欧美xxxx综合视频| 欧美电影在线播放| 国产成人短视频| 成人性生交大片免费看小说| 欧美黄色片免费观看| 国产精品www网站| 国产精品高精视频免费| 91国产精品视频在线| 91精品国产91久久久久久不卡| 国产精品美女呻吟| 欧美网站在线观看| 亚洲成人黄色在线观看| 国产精品一区二区三区毛片淫片| 欧美国产日韩精品| 久久久国产一区| 亚洲综合日韩在线| 草民午夜欧美限制a级福利片| 精品国产成人在线| 黄网站色欧美视频| 97国产精品免费视频| 亚洲精品美女在线观看| 久久精品夜夜夜夜夜久久| 日韩精品中文字幕久久臀| 91精品国产成人www| 最近2019中文字幕mv免费看| 狠狠色狠狠色综合日日小说| 91精品久久久久久久久不口人| 日本高清视频精品| 国产精品久久久久久av福利软件| 精品国产一区二区三区四区在线观看| 久久久免费在线观看| 国产成人高清激情视频在线观看| 国产成人自拍视频在线观看| 亚洲香蕉成视频在线观看| 91极品女神在线| 国产精品久久久久影院日本| 国产婷婷成人久久av免费高清| 亚洲天堂男人天堂女人天堂| 国产精品美女主播在线观看纯欲| 亚洲一区av在线播放| 亚洲人成电影网站色xx| 欧美精品videos性欧美| 日韩视频免费看| 国产精品久久久久久久久久久久| 欧美在线视频一区二区| 久久色在线播放| 久久精品国产精品亚洲| 欧美久久精品午夜青青大伊人| 成人a级免费视频| 高清一区二区三区四区五区| 国产精品一区二区久久精品| 中文字幕在线日韩| 亚洲精品狠狠操| 亚洲最新av在线| 久久久成人精品| 亚洲xxxx3d| 国产精品自在线| 国产精品黄色影片导航在线观看| 裸体女人亚洲精品一区| 国产亚洲欧洲高清一区| 91在线观看免费观看| 在线中文字幕日韩| 欧美日韩国产限制| 国产精品久久久av| 91精品中文在线| 九色成人免费视频| 日韩精品高清在线观看| 国产91av在线| 青青久久av北条麻妃黑人| 国产精品中文久久久久久久| 91精品啪aⅴ在线观看国产| 亚洲激情中文字幕| 国产成人在线一区| 亚洲国产精彩中文乱码av在线播放| 久久97精品久久久久久久不卡| 国产激情久久久| 91精品国产网站| 中文字幕av日韩| 欧美性猛交xxxx乱大交3| 国产精品美女主播在线观看纯欲| 5252色成人免费视频| 亚洲精品wwww| 国产精品主播视频| 亚洲在线视频观看| 精品国产欧美成人夜夜嗨| 欧美大片大片在线播放| 成人福利视频在线观看| 欧美国产极速在线| 亚洲片国产一区一级在线观看| 久久精品视频在线播放| 中文字幕精品在线视频| 欧美精品videos| 国产精品免费网站| 中文字幕精品一区久久久久| 亚洲视屏在线播放| 亚洲视频在线观看视频| 国产不卡视频在线| 疯狂蹂躏欧美一区二区精品| 亚洲第一天堂av| 国产成人免费91av在线| 91精品视频在线看| 亚洲欧美日韩网| 97在线视频免费播放| 亚洲国产精彩中文乱码av在线播放| 91高清视频免费| www亚洲精品| 亚洲福利视频专区| 精品一区二区亚洲| 久久久999国产| 国产情人节一区| 中文字幕亚洲欧美日韩高清| 亚洲女成人图区| 欧美日韩亚洲网|