首頁 > 後端開發 > php教程 > php操作xml,xml 常用

php操作xml,xml 常用

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-07-29 09:10:46
原創
864 人瀏覽過

一、解常見協定:
 FTP(File Transfer Protocol):遠端檔案傳輸協議,允許使用者將遠端主機上的檔案拷貝到自己的電腦上。
 SMTP(Simple Mail transfer Protocol):簡單郵政傳輸協議,用於傳輸電子郵件。 
 NFS(Network File Server):網路檔案伺服器,可讓多台電腦透明地存取彼此的目錄。 
 HTTP 超文本傳輸協定:
  HTTP是屬於應用層的物件導向的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年 的使用與發展,並不斷地完善和擴展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的標準化工作正在進行中
 HTTP協定的主要特點可概括如下: 
1.支援客戶/伺服器模式。 
2.簡單快速:客戶向伺服器要求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與伺服器聯繫的類型不同。 
由於HTTP協定簡單,使得HTTP伺服器的程式規模小,因而通訊速度很快。 
3.彈性:HTTP允許傳輸任意類型的資料物件。正在傳輸的類型由Content-Type加以標記。 
4.無連線:無連線的意義是限制每次連線只處理一個請求。伺服器處理完客戶的請求,並收到客戶的應答後,即斷開連線。採用這種方式可以節省傳輸時間。 
5.無狀態:HTTP協定是無狀態協定。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的訊息,則它必須重傳,這可能導致每次連接傳送的資料量增加。另一方面,在伺服器不需要先前資訊時它的應答就較快。 
二、了解xml:
    當 XML(擴展標記語言)於 1998 年 2 月被引入軟體產業時,它給整個產業帶來了一場風暴。有史以來第一次,這個世界擁有了一種用來結構化文件和資料的通用且適應性強的格式,它不僅可以用於 WEB,而且可以被用於任何地方。
XML 指擴展標記語言。
HTML指的是超文本標記語言。
php 指的是超文本預處理語言。
xml是提供不同平台不同語言之間的通訊橋樑.
xml 本質是文字檔.用來描述資料的結構
xml的基本語法:
xml有嚴格的語法規則
xml必須先申明
 
xml必須建立根元素
xml中所有的元素必須成對出現
xml對大小寫敏感
xml元素嵌套必須正確
xml元素的屬性必須使用" " 包含
XML文件使用的是自描述的和簡單的語法,一個XML文件最基本的構成包括:聲明,處理指令(可選)和元素。以下是一個簡單的
 


   我的網頁我的網頁 >
   lyle_zhang
   這是內容@!神奇的2013! 祝福同學找到理想的工作!

解釋:
  文檔的聲明

xml標記說明它是一個xml文檔,後面兩個屬性值顯示了它的版本號碼和編碼標準,standalone取yes表示該檔案未引用其他外部XML檔案。
三、與xml 相關的webservice.
xml Web Service 是在 Internet 上進行分散式運算的基本建構塊。開放的標準以及對使用者和應用程式之間的通訊和協作的關注產生了這樣一種環境,在這種環境下,XML Web Service 成為應用程式整合的平台。
xML Web Service 可以非常詳細地說明其接口,這使用戶能夠創建客戶端應用程式與它們進行通訊。
xML Web Service 透過標準的 Web 協定為 Web 使用者提供有用的功能。多數情況下使用 SOAP 協定。 
soap 是 XML Web Service 的通訊協定。
四、xml html xhtml dhtml 的差別:
XML與HTML的設計差異是:
   XML是用來儲存資料的,重在資料本身。
  HTML是用來定義資料的,重在資料的顯示模式
  XHTML(The Extensible HyperText Markup Language(可擴充標識語言))其實是HTML的升級版本。這個版本推出的目的是為了讓人們更容易接受XML,因為XML是未來web發展的方向,本質上說,XHTML是一個過渡技術,結合了部分XML的強大功能及大多數HTML的簡單特性。
DHTML:確切地說,DHTML只是一種製作網頁的概念,實際上沒有一個組織或機構推出過所謂的DHTML標準或技術規範之類的。 DHTML不是一種技術、標準或規範,DHTML只是一種將目前已有的網頁技術、語言標準整和運用,製作出能在下載後仍能即時變換頁面元素效果的網頁的設計概念。 DHTML建立在原有技術的基礎上,可分為三個面向:
一是HTML,也就是頁面中的各種頁面元素對象,它們是被動態操縱的內容;
二是CSS,CSS屬性也是動態操縱的內容,從而獲得動態的格式效果;
三是客戶端腳本(例如JavaScript),它實際操縱Web頁上的HTML和CSS。
使用DHTML技術,可使網頁設計者建立能夠與使用者互動並包含動態內容的頁面。實際上,DHTML使網頁設計者可以動態操縱網頁上的所有元素——甚至是在這些頁面被裝載以後。利用DHTML,網頁設計者可以動態地隱藏或顯示內容、修改樣式定義、啟動元素以及為元素定位。 DHTML也可使網頁設計者在網頁上顯示外部訊息,方法是將元素捆綁到外部資料來源(如檔案和資料庫)上。所有這些功能均可用瀏覽器完成而無需請求Web伺服器,同時也無需重新裝載網頁。這是因為一切功能都包含在HTML檔案中,隨著對網頁的請求而一次下載到瀏覽器端.
五、dom 操作xml


   aa
   bb
   cc

dom節點讀取資料
header("content-type: text/html; charset=utf-8");
  //dom 節點讀取xml檔
$dom = new DomDocument(); //建立DOM物件
$dom->load('1.xml'); / /讀取XML檔
$root = $dom->documentElement; //取得XML資料的根
$nodes=$root->childNodes; //取得XML 根物件下面的所有子節點物件
echo $nodes-> item(1)->nodeValue;  //輸出名稱
echo $nodes->item(3)->nodeValue;  //輸出密碼
echo $nodes->item(5)->nodeValue;  //輸出性別
echo $nodes->item(7)->nodeValue;  //輸出年齡
//取得屬性
echo $dom->getElementsByTagName('name')->item(0)->attributes->getNamedItem('abc') ->nodeValue;
echo $nodes->item(1)->attributes->getNamedItem('id')->nodeValue;
readXml($root); //執行循環讀取節點函數,傳遞根節點物件
function readXml($nodes){
     if($nodes->hasChildNodes()){  //判斷是否有子節點
           childNodes as $key=>$node){ //循環子節點清單
                  if($node->nodeType == XML_ELEMENT_NODE){ de);//遞迴執行readXml( ) 函數
                  }elseif($node->nodeType== XML_TEXT_NODE){ //判斷是否為檔案節點
    你的程式碼
                  }
            }
}
}
?>
 //dom 產生xml 文件
 $doc=new DOMDocument('1.0');
//依序建立並追加節點物件
 $root=$doc-> ('school')); //建立並追蹤加根目錄
//建立子節點
  $class1=$root->appendChild($doc->createElement('class1'));
//建立班級下面的子節點
  $stu=$class1->appendChild($doc->createElement('stu'));
//給stu 建立屬性與文字
  $stu->appendChild($doc->createTextNode('1班') );
 $stu->setAttribute('number','10');
 $stu->setAttribute('zhuanye','java');
/**
 * 上面的程式碼產生xml格式


1班


 */
//建立子節點
$class2=$root->appendChild($doc->createElement('class2'));
//建立班級下面的子節點
$stu2=$class2->appendChild($doc->createElement('stu') );
//給stu 建立屬性與文字
$stu2->appendChild($doc->createTextNode('1班'));
$stu2->setAttribute('number','20');
$stu2 ->setAttribute('zhuanye','php');
//生成
$doc->formatOutput=true;
 $xmlDoc=$doc->saveXML(); //產生xml 回傳一個xml文件
 $doc- >save('school.xml');
/**
 上面的程式碼最終產生的結果:
 


1班
1班


1班


 */
六、simplexml介面
header("content-type: text/html; charset=utf-8");
$xml=simplexml_load_file( 'school.xml');//傳回陣列物件
//循環讀取資料與屬性
 foreach($xml as $key=>$node){
       if($key=='class1'){
     if($key=='class1'){
     if($key=='class1'){
      node->stu;//直接存取物件的文字節點 //輸出的結果: 1班
       }elseif($key== 'class2'){
            屬性中 $node- echo $node- echo $node- echo $node- echo $node- echo $node- echo $node- echo $node- echo。的存取輸出結果: 20
       }
  }
 //直接存取屬性
 echo $xml->class1->stu['zhuanye'];  //輸出結果: java
/java f**/ xml 並儲存
 header("content-type: text/html; charset=utf-8");
//遠端存取xml檔案
$xml=simplexml_load_file('http://127.0.0.1/xml /2.xml');
$xml->asXML('5.xml'); //儲存在本地
//依據你的業務邏輯操作你的xml文檔
?>
七、
資料庫資料產生xml文件
/**



1班


2班


 */
$c>mysql_select_db('member');
mysql_set_charset("utf8");
//資料提交
if(isset($_POST['zhuce'])){
$username=trim($_POST['username']);
    $userpwd=trim($_POST['userpwd']);
    $useremail=trim($_POST['useremail']);
  //寫入資料庫
    $sql="insert into reg(`id`,`name`,`pwd`,`email`) values(null,'$username','$userpwd','$useremail')";
    $res= mysql_query($sql);
    if($res){
        //查詢資料庫
        $rest="select * from reg";
        while( $rows=mysql_fetch_assoc($rest)){
            $users[]=$rows;
        }
    }
  //判斷是否有資料
  if( !empty($users)){
    $xmlString=createXml('users',$users);
    $xmlObj=new SimpleXMLElement($xmlString);
    $xmlObj=new SimpleXMLElement($xmlString); xml    $xmlObj=new SimpleXMLElement($xmlString); xmlObj->asXML("reg.xml"); //儲存
  }
}
//建立xml
 function createXml($boot,$data){
     $xml="n"; $data as $key=>$value) {
            if(is_string($key)){
                 $p.="";   $value as $k=>$val){
                      $xml .="n ".$val."$k>";
                    }
           
              $xml.="< ; $boot.$key>" ;
                foreach($value as $k=>$val){
                   }
              $ xml.=「n<」 ;/$boot.$key>n";
            }
        }
     $.="$boot>"; !DOCTYPE html PUBLIC "- //W3C//DTD XHTML 1.0 過渡//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">




註冊後將資料寫入資料庫並將資料產生xml 文件保存在api 目錄下方;



       使用者名稱:

       密碼密碼:

       信箱:

       />
   
   



遠端取得物件:
  
$xml=simplexml_load_file('http://127.0.0.1/xml/reg.xml'); //$memberXml=$xml->asXML('member.xml');
? >



   
   
    註冊後將資料寫入資料寫入資料到資料庫並將資料產生xml文件保存在api目錄下方



pwd< ;/th>
  foreach($xml as $key=>$node){
 ?>
     
    ?php echo $node->id;?>
         
         
         
     
 }
?>
id 名稱電子郵件
name;?> 電子郵件;?>



yahoo 查詢中國城市id地址
http://weather.yahoo.com/china/
 $xml=simplexml_load_file("http://xml .weather.yahoo.com/forecastrss?w=2158433&u=c");
 echo '
';<br>    //var_dump($xml);<br>   $arrobj=$xml->chan_dump($xml);<br>   $arrobj=$xml->chanl->image; echo $arrobj->url;<br> // print_r($xml->channel);<br> echo '
登入後複製
';
 
 echo 'php操作xml,xml 常用';
 
 echo ''.$arrobj->title.'';
sian weather天氣預報xml
 header("content-type : text/html;charset=utf-8");
$c//php.weather.sina.com.cn/xml.php?password=DJOYnieT8234jlsK&day=0&city=成都");
 file_put_contents('sina_weather.xml' ,$content);

以上就介紹了php操作xml,xml 常用,包括了Web伺服器,天氣預報,物件導向方面的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
javascript - js正規符合特定字串
來自於 1970-01-01 08:00:00
0
0
0
為什麼說非物件呼叫成員函數fetch()
來自於 1970-01-01 08:00:00
0
0
0
資料庫設定檔必須要用二維數組
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板