一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP讀取XML值的代碼(推薦)

PHP讀取XML值的代碼(推薦)

2019-11-14 15:06php教程網 PHP教程

PHP讀取XML值的代碼,網上很多是pdf版的,變向的賺積分,腳本特為大家搜索整理。希望大家以后多多的支持我們。

用Php讀取XML最簡單的情況: 

XML文件(cy.xml)如下: 

復制代碼代碼如下:


<?xml version=”1.0″ encoding=”gb2312″?> 
<xml> 
<list>1</list> 
<list>2</list> 
<list>3</list> 
</xml> 


Php文件(cy.php)如下: 

復制代碼代碼如下:


<?php 
$xml = new DOMDocument(); 
$xml->load('cy.xml'); 
foreach($xml->getElementsByTagName('list') as $list) 

$value = $list->firstChild->nodeValue; 
echo $value.”<br />”; 

?> 


cy.php的運行結果: 




============= 

用Php讀取XML稍微復雜一點的情況: 

cy.xml如下: 

復制代碼代碼如下:


<?xml version=”1.0″ encoding=”gb2312″?> 
<xml> 
<main> 
<list>1</list> 
<list>2</list> 
<list>3</list> 
</main> 
</xml> 


cy.php如下(和第一種情況沒有任何變化): 

復制代碼代碼如下:


<?php 
$xml = new DOMDocument(); 
$xml->load('cy.xml'); 
foreach($xml->getElementsByTagName('list') as $list) 

$value = $list->firstChild->nodeValue; 
echo $value.”<br />”; 

?> 


cy.php的運行結果和第一次也相同: 




Php讀取XML第三種情況: 

XML文件(cy.xml)如下: 

復制代碼代碼如下:


<?xml version=”1.0″ encoding=”gb2312″?> 
<xml> 
<main> 
<list>1</list> 
<list>2</list> 
<list>3</list> 
</main> 
<main> 
<list>4</list> 
<list>5</list> 
<list>6</list> 
</main> 
</xml> 


Php文件(cy.php)如下(和第一次依然沒有變化): 

復制代碼代碼如下:


<?php 
$xml = new DOMDocument(); 
$xml->load('cy.xml'); 
foreach($xml->getElementsByTagName('list') as $list) 

$value = $list->firstChild->nodeValue; 
echo $value.”<br />”; 

?> 


cy.php的輸出結果: 







=========== 

Php讀取XML第四種情況,保持cy.xml不變,改變cy.php: 

XML文件(cy.xml)如下: 

復制代碼代碼如下:


<?xml version=”1.0″ encoding=”gb2312″?> 
<xml> 
<main> 
<list>1</list> 
<list>2</list> 
<list>3</list> 
</main> 
<main> 
<list>4</list> 
<list>5</list> 
<list>6</list> 
</main> 
</xml> 


Php文件(cy.php)如下: 

復制代碼代碼如下:


<?php 
$xml = new DOMDocument(); 
$xml->load('cy.xml'); 
$main = $xml->getElementsByTagName('main'); 
foreach( $main as $main) 

$list = $main->getElementsByTagName( “list” ); 
foreach ( $list as $list ) 

$value = $list->firstChild->nodeValue; 
echo $value.”<br />”; 


?> 


cy.php輸出結果: 







為什么兩次的cy.php不同,但輸出結果是相同的?讓我們來看下一個例子 

============== 

Php讀取XML第五種情況,改變cy.xml,使cy.php保持第四種情況: 

XML文件(cy.xml)如下: 

復制代碼代碼如下:


<?xml version=”1.0″ encoding=”gb2312″?> 
<xml> 

<main> 
<list>1</list> 
<list>2</list> 
<list>3</list> 
</main> 
<main> 
<list>4</list> 
<list>5</list> 
<list>6</list> 
</main> 
<m> 
<list>7</list> 
<list>8</list> 
<list>9</list> 
</m> 

</xml> 


Php文件(cy.php)和第四種情況相同: 

復制代碼代碼如下:


<?php 
$xml = new DOMDocument(); 
$xml->load('cy.xml'); 
$main = $xml->getElementsByTagName('main'); 
foreach( $main as $main) 

$list = $main->getElementsByTagName( “list” ); 
foreach ( $list as $list ) 

$value = $list->firstChild->nodeValue; 
echo $value.”<br />”; 


?> 


cy.php輸出結果為: 







為什么 
<m> 
<list>7</list> 
<list>8</list> 
<list>9</list> 
</m> 
中的7,8,9沒有被讀出來? 
因為我們的cy.php只讀取<main></main>標記中的內容.<m></m>標記中的內容是不會被讀取的. 
我們這里所提到的”標記”,在XML里被稱做”節點”; 
關于”節點”的相關概念,我們將在以后說明. 

Php讀取XML情況六,再foreach一次,我們把7,8,9讀出來!: 

XML文件(cy.xm)如下: 

復制代碼代碼如下:


<?xml version=”1.0″ encoding=”gb2312″?> 
<xml> 
<main> 
<list>1</list> 
<list>2</list> 
<list>3</list> 
</main> 
<main> 
<list>4</list> 
<list>5</list> 
<list>6</list> 
</main> 
<m> 
<list>7</list> 
<list>8</list> 
<list>9</list> 
</m> 
</xml> 


Php文件(cy.php)如下: 

復制代碼代碼如下:


<?php 
$xml = new DOMDocument(); 
$xml->load('cy.xml'); 
$main = $xml->getElementsByTagName('main'); 
foreach( $main as $main) 

$list = $main->getElementsByTagName( “list” ); 
foreach ( $list as $list ) 

$value = $list->firstChild->nodeValue; 
echo $value.”<br />”; 


$m = $xml->getElementsByTagName('m'); 
foreach( $m as $m) 

$list = $m->getElementsByTagName( “list” ); 
foreach ( $list as $list ) 

$value = $list->firstChild->nodeValue; 
echo $value.”<br />”; 


?> 


cy.php輸出結果: 










=============== 

Php讀取XML情況七,cy.xml變得更復雜一些: 

XML文件(cy.xml)如下: 

復制代碼代碼如下:


<?xml version=”1.0″ encoding=”gb2312″?> 
<xml> 
<main> 
<title>a</title> 
<list>1</list> 
<list>2</list> 
<list>3</list> 
</main> 
<main> 
<title>b</title> 
<list>4</list> 
<list>5</list> 
<list>6</list> 
</main> 
<m> 
<title>c</title> 
<list>7</list> 
<list>8</list> 
<list>9</list> 
</m> 
</xml> 


那么,我們如何只讀出<main></main>內<title></title>中的值呢? 

Php文件(cy.php)如下: 

復制代碼代碼如下:


<?php 
$xml = new DOMDocument(); 
$xml->load('cy.xml'); 
$main = $xml->getElementsByTagName('main'); 
foreach( $main as $main) 

$list = $main->getElementsByTagName( “list” ); 
foreach ( $list as $list ) 

$value = $list->firstChild->nodeValue; 
echo $value.”<br />”; 

$title = $main->getElementsByTagName( “title” ); 
foreach ( $title as $title ) 

$value = $title->firstChild->nodeValue; 
echo $value.”<br />”; 



$m = $xml->getElementsByTagName('m'); 
foreach( $m as $m) 

$list = $m->getElementsByTagName( “list” ); 
foreach ( $list as $list ) 

$value = $list->firstChild->nodeValue; 
echo $value.”<br />”; 


?> 


cy.php輸出結果: 












想一下,如何讀出<m>中<title></title>的值? 

Php讀取XML再通過一個例子鞏固一下: 

XML文件(cy.xml)如下: 

復制代碼代碼如下:


<?xml version=”1.0″ encoding=”gb2312″?> 
<LevelOne> 
<LevelTwo> 
<LevelThree id=”1″>This is Text One</LevelThree> 
<LevelThree id=”2″>This is Text Two</LevelThree> 
<LevelThree id=”3″>This is Text Three</LevelThree> 
</LevelTwo> 
<LevelTwo> 
<LevelThree id=”4″>This is Text Four</LevelThree> 
<LevelThree id=”5″>This is Text Five</LevelThree> 
<LevelThree id=”6″>This is Text Six</LevelThree> 
</LevelTwo> 
</LevelOne> 


Php文件(cy.php)如下: 

復制代碼代碼如下:


<?php 
$xml = new DOMDocument(); //建立一個DOMDocument 
$xml->load('cy.xml'); //Php指定需要讀取xml文件的位置 
$LevelOne = $xml->getElementsByTagName('LevelOne');//按照名稱取得節點,返回所有節點的集合,不過這里這樣讀LevelOne是沒有意義的…. 
$LevelOne = $xml->getElementsByTagName('LevelOne')->item(0);//返回第一個LevelOne節點中的內容 
$LevelTwo = $LevelOne->getElementsByTagName('LevelTwo'); //按照名稱取得節點,返回所有LevelTwo 
foreach ( $LevelTwo as $Content )//循環讀出所有LevelTwo,并在循環里,把LevelTwo用Content表示 

$LevelThree = $Content->getElementsByTagName('LevelThree');//返回所有LevelThree 
foreach ( $LevelThree as $Concert ) 

$name = $Concert->nodeName;//節點名稱 
$value = $Concert->nodeValue;//節點值 
$id = $Concert->getAttribute('id');//”id”屬性值 
echo $name.”<br />”; 
echo $value.”<br />”; 
echo $id.”<br />”; 


?> 


如果用$LevelOne = $xml->getElementsByTagName('LevelOne')這樣的方式取得節點,那么,讀取里面的內容,需要用foreach 循環,因為$LevelOne = $xml->getElementsByTagName ('LevelOne')返回的,是一個集合,并不是一個具體的節點—-僅管叫做LevelOne的節點只有一個…. 
如果用$LevelOne = $xml->getElementsByTagName('LevelOne')->item(0)這樣的方式取得節點,那么讀取里面的內 容,可以直接$LevelOne->xxxxxx,因為這樣返回的是一個具體的節點。 

現在提供一種很簡便的方法用PHP讀取XML: 

XML文件(cy.xml)如下: 

復制代碼代碼如下:


<?xml version=”1.0″ encoding=”gb2312″?> 
<xml> 
<site> 
<part id=”1″> 
<title id=”a”>czbin xml版塊</title> 
<describe>xml的相關文章</describe> 
</part> 
<part id=”2″> 
<title id=”b”>czbin php版塊</title> 
<describe>php的相關文章</describe> 
</part> 
<part id=”3″> 
<title id=”c”>czbin ajax版塊</title> 
<describe>ajax的相關文章</describe> 
</part> 
</site> 
</xml> 


Php文件(cy.php)如下: 

復制代碼代碼如下:


<?php 
$xml = simplexml_load_file('sxml.xml'); 
$part = $xml->site->part; 
foreach ( $part as $content ) 

echo $content['id'].”<br />”; 
echo $content->title.”<br />”; 
echo $content->title['id'].”<br />”; 
echo $content->describe.”<br />”; 

?> 


cy.php輸出結果: 

czbin xml版塊 

xml的相關文章 

czbin php版塊 

php的相關文章 

czbin ajax版塊 

ajax的相關文章 

怎么樣?的確很簡單吧!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 俄罗斯妈妈k8影院在线观看 | 免看一级一片一在线看 | 国内精品一区二区在线观看 | 91在线 在线播放 | 欧美日韩在线观看一区二区 | 国产香蕉国产精品偷在线观看 | 2020最新版的ab片| 国产高清在线播放刘婷91 | 久久久久久免费高清电影 | 手机看片自拍自自拍日韩免费 | 欧美另类69xxx | 国外欧美一区另类中文字幕 | 国产精品 视频一区 二区三区 | 亚洲卡一卡2卡三卡4卡无卡三 | 国产一区日韩二区欧美三 | 天天综合网天天做天天受 | 亚洲欧美国产精品完整版 | 日本人交换乱理伦片 | 亚洲香蕉网久久综合影院3p | 久热这里在线精品 | 日日骑夜夜骑 | 国产区香蕉精品系列在线观看不卡 | 亚洲精品一线二线三线 | 国产真实偷乱视频在线观看 | 欧美日韩中文国产一区 | 国产成人cao在线 | 亚洲天堂成人在线观看 | 亚洲欧美日韩久久一区 | 无码任你躁久久久久久久 | 给我视频免费看 | 亚洲精品国产A久久久久久 亚洲精品福利一区二区在线观看 | 久久艹影院 | 小sao货水好多真紧h的视频 | 9l国产精品久久久久麻豆 | 男女性gif抽搐出入视频 | 久久综合亚洲色hezyo | 国色天香社区在线 | 99re热精品这里精品 | 亚洲国产成人精品激情 | 色热综合| 色综合天天综合中文网 |