1. php怎么解析微信支付结果返回的xml
php解析xml报文的方法是DOMDocument:
解析方法如下:
$xmlstring = <<<XML
<?xml version='1.0'?>
<document>
<cmd attr='default'>login</cmd>
<login>imdonkey</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;
}
2. php 解析xml 的方法
$url =“给你接口的路径";
$doms = simplexml_load_file ( $url );//直接把路径放在simplexml_load_file 方法里就行$doms里存放的就是读取的 XML 信息,你可以print_r($doms)试一下
然后用循环你就可以获得 XML里面的信息了
foreach ( $doms->节点名字 as $studys )
{
echo $studys."</br>";//输入一下结果可以看一下
}
注意:simplexml_load_file ( $url )这个方法解析出来的中文只能是utf-8 如果你的项目使用的不是该编码会出现中文乱码,你可以用
iconv ( "UTF-8", "GB2312", “这里放你要转换的内容”);转换能你用的编码格式例如转换成GB2312
3. PHP读取xml文件
以前做过联通或电信的service订购接口,收到的内容就是XML的,需要用到PHP的XML处理功能,你的代码可以这样:
<xmp>
<?php
$string=file_get_contents("http://www.orderjiaju.com/zixun/data/rss/3.xml");
if($string!=""):
$xml = new DomDocument('1.0');
$xml->loadXML($string);
//班台
$BanTai=array(
'Title'=>$xml->getElementsByTagName('channel')->item(0)->childNodes->item(1)->nodeValue,
'Link' =>$xml->getElementsByTagName('channel')->item(0)->childNodes->item(3)->nodeValue
);
for($i=0;$i<3;$i++)
{
$Title[]=array(
'Title'=>$xml->getElementsByTagName('item')->item($i)->childNodes->item(1)->nodeValue,
'Link' =>$xml->getElementsByTagName('item')->item($i)->childNodes->item(3)->nodeValue
);
}
print_r($BanTai);
print_r($Title);
endif;
?>
</xmp>
回答补充:
现在你直接,然后执行没效果吗?
我这里是可以的呢,测试网址是:service.020i.net/test_xml.php
4. php解析xml问题
<?php
$xml='...xml数据此略...';
$eid='31037010'; //这是要查找的equip_id
$dom=new DOMDocument('1.0','utf-8');
@$dom->loadXML($xml);
$eids=$dom->getElementsByTagName('equip_id');
foreach($eids as $v){
if($v->nodeValue==$eid){
do{
if($v->nodeType==1){
$name=$v->tagName; //同级标签名
$text=$v->nodeValue; //同级标签值
print_r($name.'='.$text.'<br />');
}
}while($v=$v->nextSibling);
}
}
?>
5. php 怎样查看返回的xml数据
php返回xml,首先封装好xml数据格式,然后return即可。示例如下:
<?php
//name
$name="";
//age
$age=10;
//构造xml数据格式
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<>
<name> {$name} </name>
<age>{$age}</age>
</>
XML;
return $xml;
?>