本文目錄一覽:
- 1、PHP怎麼解析微信支付結果返回的xml
- 2、PHP顯示XML的問題
- 3、php輸出xml內容
- 4、怎樣通過php程序返回xml格式的數據
- 5、php 怎樣查看返回的xml數據
- 6、php webservice 返回 xml 格式保存及調用
PHP怎麼解析微信支付結果返回的xml
php解析xml報文的方法是DOMDocument:
解析方法如下:
$xmlstring = XML
?xml version=’1.0′?
document
cmd attr=’default’login/cmd
loginimdonkey/login
/document
XML;
$dom = new DOMDocument();
$dom-loadXML($xmlstring);
print_r(getArray($dom-documentElement));
function getArray($node) {
$array = false;
if ($node-hasAttributes()) {
foreach ($node-attributes as $attr) {
$array[$attr-nodeName] = $attr-nodeValue;
}
}
if ($node-hasChildNodes()) {
if ($node-childNodes-length == 1) {
$array[$node-firstChild-nodeName] = getArray($node-firstChild);
} else {
foreach ($node-childNodes as $childNode) {
if ($childNode-nodeType != XML_TEXT_NODE) {
$array[$childNode-nodeName][] = getArray($childNode);
}
}
}
} else {
return $node-nodeValue;
}
return $array;
}
PHP顯示XML的問題
$xmlDoc = new DOMDocument ();
$xmlDoc-load ( ‘xml.xml’ );
$utdm = $xmlDoc-getElementsByTagName ( ‘post’ ); //獲取
foreach ( $utdm as $is ) { //判斷id=?
$id = $is-getAttribute ( ‘id’ );
if ($id == “new0”) {
$nodeList = $is-getElementsByTagName(‘title’);
echo “ok” . “br”;
foreach ( $nodeList as $n ) {
echo “id: ” . $id . “br”;
echo “name: ” . $n-nodeValue . “brbr”;
}
break; //如果判斷成功了就停止了.不用再判斷了
} else {
echo “no” . “br”;
}
}
你的nodelist是整個文檔中的名字是title的節點的集合,而實際上你需要的nodeList是id = new0 的節點的中的名字是title的節點的集合,上面的代碼可以實現
php輸出xml內容
PHP生成XML的方法很多,這裡演示最基本,最簡單的字元串構造法。就是使用字元串構造或者拼接成xml數據格式,然後輸出或者生成xml文件。
?php
$data = array(
array(
‘title’ = ‘baidu’,
‘country’ = ‘china’,
‘name’ = ‘百度’,
),
array(
‘title’ = ‘google’,
‘country’ = ‘usa’,
‘name’ = ‘谷歌’,
)
);
//構造xml數據格式
$xml = “?xml version=\”1.0\” encoding=\”utf-8\”?\n”;
$xml .= “data\n”;
foreach ($data as $itm) {
//循環構造xml單項
$item = “item\n”;
$item .= “title” . $itm[‘title’] . “/title\n”;
$item .= “country” . $itm[‘country’] . “/country\n”;
$item .= ” name” . $itm[‘name’] . “/name\n”;
$item .= “/item\n”;
$xml .=$item;
}
$xml .= “/data\n”;
//輸出xml數據
echo $xml;
?
生成的數據格式如下:
怎樣通過php程序返回xml格式的數據
無論是返回 json 還是 xml 數據,區別僅在於數據的格式。
返回 xml 格式數據示例如下:
?php
//指示返回數據格式為 xml
header(‘Content-Type: text/xml’);
?
?xml version=”1.0″ encoding=”utf-8″ ?
?php
//構造 xml
//$xmldata = ”
// data
// site_name$site[name]/site_name
// ……..
// data”;
echo $xmldata;
?
php 怎樣查看返回的xml數據
php返回xml,首先封裝好xml數據格式,然後return即可。示例如下:
?php
//name
$name=”zhidao”;
//age
$age=10;
//構造xml數據格式
$xml = XML
?xml version=”1.0″ encoding=”utf-8″?
baidu
name {$name} /name
age{$age}/age
/baidu
XML;
return $xml;
?
php webservice 返回 xml 格式保存及調用
寫個xml生成類
將數組傳進去
生成xml文件就可以
送你個 改改
?php
class xml {
private $data;
private $encoding=’utf-8′; //XML文件編碼
private $root=’yeedao’;
/*—————————————
* 實例化時傳遞參數
* $data array 執行編譯的數據
*—————————————*/
public function __construct($data=”){
$this-data=$data;
if( $this-data==” ){
exit(‘請傳遞參數’);
}
}
public function __toString(){
return $this-get_xml();
}
/*—————————————-
* 生成XML
*—————————————-*/
public function get_xml() {
$xml = “?xml version=\”1.0\” encoding=\”{$this-encoding}\”?”;
$xml.= “{$this-root}”;
$xml.= $this-make_xmk($this-data);
$xml.= “/{$this-root}”;
return $xml;
}
/*————————————-
* 將數組或對象轉換成XML-DOM格式
*————————————-*/
protected function make_xmk($data) {
$xml = ”;
foreach ($data as $key = $value) {
//如果$key是一個數字,前面加item
(is_numeric($key)) ? $key=’item’.$key : $key ;
$xml.=”{$key}”;
//如果遍歷的$value還是一個array,回調
$xml.= ( is_array($value) || is_object($value)) ? $this-make_xmk($value) : $value;
$xml.=”/{$key}”;
}
return $xml;
}
/*—————————————–
* 創建XML文件,成功後返迴文件路徑
* $path 文件路徑
* $filename 文件名
*—————————————–*/
public function touch_xml($path=”,$filename=”){
$path=$_SERVER[‘DOCUMENT_ROOT’].$path;
if($path{strlen($path)-1} != ‘/’)$path.=’/’;
if(!is_dir($path))return ‘不是一個目錄’;
$filename=$path.$filename;
touch ($filename);
chmod($filename,0777);
if(is_writeable($filename)){
if($handle=fopen($filename,’w+’)){
if(fwrite($handle,$this-get_xml()) === false){
return ‘文件’.$filename.’寫入失敗’;
}else{
return $filename; //返迴路徑
}
}else{
return ‘不能打開文件’.$filename;
}
}else{
return ‘文件’.$filename.’不可寫’;
}
}
}
?
原創文章,作者:T2UN2,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130815.html