phpphp取出xml數據,php解析xml數據

本文目錄一覽:

PHP讀取XML數據

編碼問題,function

characterData改成如下

function

characterData($parser_instance,

$xml_data)

{

global

$name,$position;

$xml_data=iconv(“utf-8″,”gb2312”,$xml_data);//轉換成gb2312

if($position)

echo

$xml_data.”br”;

if($name)

echo

$xml_data.”br”;

}

顯示的那個頁面也要有charset=gb2312

PHP 獲取XML數據

給個小例子:

1.直接是xml字符串

?php

$string = XML

?xml version=’1.0′? 

document

 titleForty What?/title

 fromJoe/from

 toJane/to

 body

  I know that’s the answer — but what’s the question?

 /body

/document

XML;

$xml = simplexml_load_string($string);

print_r($xml);

2. xml文件的

?php

if (file_exists(‘test.xml’)) {

    $xml = simplexml_load_file(‘test.xml’);

 

    print_r($xml);

} else {

    exit(‘Failed to open test.xml.’);

}

?

如何通過PHP生成和獲取XML格式數據

1自己拼,XML編碼

?php

header(‘Content-type:text/xml’);

echo “?xml version=’1.0′ encoding=’utf-8′”;

echo “book”;

echo “PHP”;

echo “namePHP程序開發範例寶典/name”;

echo “price 單位=’元/本’89.00/price”;

echo “date2007-09-01/date”;

echo “/PHP”;

echo “/book”;

?

拼接的效果

2從數據庫中查詢再拼XML編碼

?php

$dsn=”mysql:host=localhost;dbname=test”;

try {

$pdo = new PDO($dsn,’root’,’passwowd’); //初始化一個PDO對象,就是創建了數據庫連接對象$pdo

$query=”select * from book”;   //定義SQL語句

$pdo-query(‘set names utf8’);

$result=$pdo-prepare($query); //準備查詢語句

$result-execute();       //執行查詢語句,並返回結果集

$arr=”;

while($res=$result-fetch()){

$arr.=’PHPid’.$res[0].’/idname’.$res[1].’/namedate’.$res[2].’/date’.’price’.$res[3].’/price/PHP’;

}

echo “?xml version=’1.0′ encoding=’utf-8′?book”.$arr.’/book’;

} catch (PDOException $e) {

die (“Error!: “.$e-getMessage().”br”);

}

?

拼接的效果

3使用ajax獲取,DOM解析

!DOCTYPE html

html lang=”en”

head

meta charset=”UTF-8″

titlexml/title

/head

body

script

function check(){

var xhr=new XMLHttpRequest();

xhr.open(‘GET’,’xml.php’);

xhr.onreadystatechange=function(){

if(xhr.readyState==4 xhr.status==200){

console.log(xhr.responseText);

//初始化 DOM解析對象

var domParser = new DOMParser();

//字符串解碼為對象

var xmlDoc = domParser.parseFromString(xhr.responseText,’text/xml’);

//按標籤名獲取元素 返回數組

var elements = xmlDoc.getElementsByTagName(‘PHP’);

//拼接html格式字符串

var str =’trthid/ththname/ththdate/ththprice/th/tr’;

for (var i=0;ielements.length;i++){

var id=elements[i].getElementsByTagName(‘id’)[0].firstChild.nodeValue;

var name=elements[i].getElementsByTagName(‘name’)[0].firstChild.nodeValue;

var date=elements[i].getElementsByTagName(‘date’)[0].firstChild.nodeValue;

var price=elements[i].getElementsByTagName(‘price’)[0].firstChild.nodeValue;

str+= ‘trtd’+id+’/tdtd’+name+’/tdtd’+date+’/tdtd’+price+’/td/tr’;

}

document.getElementById(‘table2’).innerHTML=str;

}

};

xhr.send(null);

}

/script

button onclick=”check();”點我/button

table id=”table2″ border=”2″ cellspacing=”0″

/table

/body

/html

效果

1

2

補充:

使用JSON

1數據庫查詢,自己拼 JSON 編碼

?php

$dsn=”mysql:host=localhost;dbname=test”;

try {

$pdo = new PDO($dsn,’root’,’password’); //初始化一個PDO對象,就是創建了數據庫連接對象$pdo

$query=”select * from book”;   //定義SQL語句

$pdo-query(‘set names utf8’);

$result=$pdo-prepare($query); //準備查詢語句

$result-execute();       //執行查詢語句,並返回結果集

$a=$arr=”;

while($res=$result-fetch()){

$arr.='{“id”:’.'”‘.$res[0].'”,’.'”name”:’.'”‘.$res[1].'”,’.'”time”:’.'”‘.$res[2].'”,’.'”jia”:’.'”‘.$res[3].'”,’.'”zhe”:’.'”‘.$res[4].'”,’.'”chu”:’.'”‘.$res[5].'”},’;

}

echo $a=”[“.substr($arr,0,strlen($arr)-1).”]”;

} catch (PDOException $e) {

die (“Error!: “.$e-getMessage().”br”);

}

?

2數據庫查詢,函數 JSON 編碼

?php

$dsn=”mysql:host=localhost;dbname=test”;

try {

$pdo = new PDO($dsn,’root’,’password’); //初始化一個PDO對象,就是創建了數據庫連接對象$pdo

$query=”select * from book”;   //定義SQL語句

$pdo-query(‘set names utf8’);

$result=$pdo-prepare($query); //準備查詢語句

$result-execute();       //執行查詢語句,並返回結果集

$res=$result-fetchAll();

//JSON 編碼

echo json_encode($res);

} catch (PDOException $e) {

die (“Error!: “.$e-getMessage().”br/”);

}

?

效果

3ajax獲取,JSON解析

!DOCTYPE html

html lang=”en”

head

meta charset=”UTF-8″

titleJSON/title

/head

body

script

function check() {

var XHR = new XMLHttpRequest();

XHR.open(‘GET’,’JSON.php’);

XHR.onreadystatechange = function (){

if(XHR.readyState == 4 XHR.status ==200){

var books =JSON .parse(XHR.responseText);

var books2=’trthid/ththbookname/ththtime/ththprice/ththmarker/ththpublisher/th/tr’

for (var i=0;ibooks.length;i++){

books2+= ‘trtd’+(books[i ].id)+’/tdtd’+(books[i ].name)+’/tdtd’+(books[i ].time)+’/tdtd’+(books[i ].jia)+’/tdtd’+(books[i ].zhe)+’/tdtd’+(books[i ].chu)+’/td/tr’;

}

document.getElementById(‘table2’).innerHTML=books2;

}

};

XHR.send(null);

}

/script

input type=”button” value=”點我” onclick=”check();”

table id=”table2″ border=”2″ cellspacing=”0″/table

/body

/html

php如何獲取xml數據包

//提取XML數據源

$xmlUrl= ”;

echo $xmlUrl;

$curl= curl_init();

curl_setopt($curl, CURLOPT_URL, $xmlUrl);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);

curl_setopt($curl, CURLOPT_HEADER, 0);

$xmlData= curl_exec($curl);

curl_close($curl);

//判斷XML編碼

if(preg_match(“/encoding\=[\’\”](.*?)[\’\”]/i”, $xmlData, $encoding)){

$encoding = $encoding[1];

}else{

$encoding = mb_detect_encoding($xmlData, array(‘ASCII’, ‘GBK’, ‘GB2312’, ‘UTF-8’, ‘iso-8859-1’));

}

echo $encoding;

//轉換XML編碼

if($encoding){

$xmlData = preg_replace(‘/encoding\=[\’\”](.*?)[\’\”]/i’, ‘encoding=”utf-8″‘, $xmlData);

switch(strtolower($encoding)){

case ‘utf-8’: break;

case ‘iso-8859-1’:

$xmlData = utf8_encode($xmlData);

break;

default:

$xmlData = iconv($encoding, ‘UTF-8//IGNORE’, $xmlData);

break;

}

}

$xmlData= simplexml_load_string($xmlData);

print_r($xmlData);

怎麼用php提取xml文件內容

創建一個以.xml結尾的文檔

內容如下:

?xml version=”1.0″ encoding=”utf-8″?

class

student info=”美女”

name小喬/name

sex女/sex

age20/age

/student

student

name周瑜/name

sex男/sex

age25/age

/student

student

namehsy/name

sex男/sex

age21/age

/student

/class

創建以.php結尾的文件:代碼如下:

?php

header(‘content-type:text/html;charset=utf-8’);

//1、創建一個DOMDocument對象。該對象就表示 xml文件

$xmldoc = new DOMDocument();

//2、加載xml文件(指定要解析哪個xml文件,此時dom樹節點就會加載到內存中)

$xmldoc-load(“class.xml”);

//3、目標:獲取第一個學生的名字

$stu = $xmldoc-getElementsByTagName(“name”);//直接找到節點name

$stu1 = $stu-item(0);// item(1)時,可以取到周瑜

$sex=$xmldoc-getElementsByTagName(“sex”);

$sex1= $sex-item(0);

echo $sex1-nodeValue;

echo $stu1-nodeValue;

?

結果顯示為:女小喬

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/300721.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-29 12:52
下一篇 2024-12-29 12:52

相關推薦

  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29
  • Python爬取公交數據

    本文將從以下幾個方面詳細闡述python爬取公交數據的方法: 一、準備工作 1、安裝相關庫 import requests from bs4 import BeautifulSou…

    編程 2025-04-29
  • Python數據標準差標準化

    本文將為大家詳細講述Python中的數據標準差標準化,以及涉及到的相關知識。 一、什麼是數據標準差標準化 數據標準差標準化是數據處理中的一種方法,通過對數據進行標準差標準化可以將不…

    編程 2025-04-29
  • 如何使用Python讀取CSV數據

    在數據分析、數據挖掘和機器學習等領域,CSV文件是一種非常常見的文件格式。Python作為一種廣泛使用的編程語言,也提供了方便易用的CSV讀取庫。本文將介紹如何使用Python讀取…

    編程 2025-04-29
  • Python如何打亂數據集

    本文將從多個方面詳細闡述Python打亂數據集的方法。 一、shuffle函數原理 shuffle函數是Python中的一個內置函數,主要作用是將一個可迭代對象的元素隨機排序。 在…

    編程 2025-04-29

發表回復

登錄後才能評論