導航:首頁 > 編程語言 > php解析xml文檔

php解析xml文檔

發布時間:2025-05-15 15:11:04

『壹』 php怎麼解析微信支付結果返回的xml

PHP解析微信支付結果返回的xml的方法是通過自定義方法和第三方組件DomDocument實現的。
1、解析代碼如下:
<?PHP
header("Content-type:text/html; Charset=utf-8");
$url = "http://www.google.com/ig/api?weather=shenzhen";

// 載入XML內容
$content = file_get_contents($url);
$content = get_utf8_string($content);
$dom = DOMDocument::loadXML($content);
/*
此處也可使用如下所示的代碼,
$dom = new DOMDocument();
$dom->load($url);
*/

$elements = $dom->getElementsByTagName("current_conditions");
$element = $elements->item(0);
$condition = get_google_xml_data($element, "condition");
$temp_c = get_google_xml_data($element, "temp_c");
echo '天氣:', $condition, '<br />';
echo '溫度:', $temp_c, '<br />';

function get_utf8_string($content) { // 將一些字元轉化成utf8格式
$encoding = mb_detect_encoding($content, array('ASCII','UTF-8','GB2312','GBK','BIG5'));
return mb_convert_encoding($content, 'utf-8', $encoding);
}

function get_google_xml_data($element, $tagname) {
$tags = $element->getElementsByTagName($tagname); // 取得所有的$tagname
if ($items->length > 1) {
return $items;
}
$tag = $tags->item(0); // 獲取第一個以$tagname命名的標簽
if ($tag->hasAttributes()) { // 獲取data屬性
$attribute = $tag->getAttribute("data");
return $attribute;
}else {
return false;
}
}
?>
2、返回支付的xml報文:
<?xml version="1.0"?>
<xml_api_reply version="1">
<weather mole_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" >
<forecast_information>
<city data="Shenzhen, Guangdong"/>
<postal_code data="shenzhen"/>
<latitude_e6 data=""/>
<longitude_e6 data=""/>
<forecast_date data="2009-10-05"/>
<current_date_time data="2009-10-04 05:02:00 +0000"/>
<unit_system data="US"/>
</forecast_information>
<current_conditions>
<condition data="Sunny"/>
<temp_f data="88"/>
<temp_c data="31"/>
<humidity data="Humidity: 49%"/>
<icon data="/ig/images/weather/sunny.gif"/>
<wind_condition data="Wind: mph"/>
</current_conditions>
</weather>
</xml_api_reply>
3、列印解析結果:

print $html;

『貳』 PHP XML Parser 函數的作用是什麼

PHP XML Parser 函數的作用是幫助開發者解析XML文檔。具體來說,它允許創建一個XML解析器,並為XML事件定義處理函數。通過這些函數,開發者可以在解析過程中執行特定的操作,例如數據提取、驗證或轉換。XMLParser函數提供了一種結構化的方式處理XML內容,使得解析過程更加靈活和高效。

在PHP中,XML Parser函數與解析器對象相結合使用。當XML文檔被解析時,解析器對象會調用用戶定義的函數,根據XML元素的類型和內容執行相應的操作。例如,當遇到XML文檔中的元素節點時,可以定義一個函數來處理該節點的內容和屬性。同樣地,當解析到文本節點時,也可以定義一個函數來處理文本內容。

使用XML Parser函數可以實現許多用途,例如從XML文檔中提取特定信息,構建數據結構,或用於數據導入和導出。通過定義不同的處理函數,開發者可以根據需求自定義解析過程,使得解析操作更加符合具體應用的邏輯。

例如,假設有一個XML文檔包含了一系列商品信息,每個商品都有名稱、價格和描述。通過定義處理函數,可以將這些信息提取出來,並構建一個商品列表,或者將其轉換為其他格式的數據結構,如數組或對象,以便進一步處理或存儲。

總之,PHP XML Parser 函數為開發者提供了一種強大的工具,用於解析和操作XML文檔。通過定義句柄函數,可以實現靈活的數據提取、驗證和轉換功能,從而滿足不同應用的需求。XML Parser函數在處理XML數據時發揮著關鍵作用,對於需要解析和操作XML文檔的應用來說,它是不可或缺的。

『叄』 PHP解析xml

.asmx的全程是ASMX Active Server Methods,.asmx 是WEB服務文件,asmx.cs里有相關代碼
屬於B/S形式,用SOAP方式HTTP訪問,用XML返回。

以下是 php語言 利用 soap調用.Net的WebService asmx文件

<?php
//php.ini中打開下面3個dll
//extension = php_soap.dll
//extension = php_curl.dll
//extension = php_openssl.dll
header("content-type:text/html;charset=utf-8");
$client = new SoapClient(" http://192.168.1.178:808/ChkWelePsw.asmx?WSDL");
//本行測試不可行 $client = new SoapClient(" http://192.168.1.178:808/chkwelepsw.asmx?WSDL/ChkWele?username=test3&psw=123");
//參數這樣傳遞 先包裝一下
$param = array('username'=>'test3','psw'=>'123');
//調用必須用__soapCall
$p = $client->__soapCall('ChkWele',array('parameters' => $param));
print_r($p->ChkWeleResult); //這里先輸出一下變數$p,看看是什麼類型。
?>

.NET部分 webservice要注意的地方
/*
* <system.web>在這個節點中加入如下內容
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>
*/
[WebMethod(Description = "This......", EnableSession = false)]
public string ChkWele(string username, string psw)
{
string ret = "";
return ret;
}

『肆』 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

『伍』 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

『陸』 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);
}
}
?>

閱讀全文

與php解析xml文檔相關的資料

熱點內容
電腦解壓文件的安裝包 瀏覽:467
不培訓能幹程序員嗎 瀏覽:281
編譯器怎麼分享微信 瀏覽:797
四川加密防塵網廠 瀏覽:284
列印機怎麼連上伺服器 瀏覽:618
2k20解壓後不能進去 瀏覽:190
伺服器掉線後顯示什麼 瀏覽:206
python根據經緯度獲取國家 瀏覽:47
stop伺服器有什麼作用 瀏覽:586
雲伺服器集群游戲伺服器 瀏覽:546
澪pro點伺服器閃退怎麼回事 瀏覽:855
同城砍票在APP哪裡找 瀏覽:574
c反匯編與逆向分析技術揭秘pdf 瀏覽:392
皮革pdf 瀏覽:221
utf8bomlinux 瀏覽:748
騰訊雲伺服器介面崩潰後自動重啟 瀏覽:436
mac開發pdf 瀏覽:320
本地sdk編譯開源代碼 瀏覽:820
伺服器是什麼等級 瀏覽:124
江蘇美女程序員 瀏覽:723