㈠ php怎麼解析從網頁中獲取的xml數據
先給你個以前寫的讀取xml格式的天氣預報的代碼吧,比著葫蘆畫瓢,不懂再追問
<?php
$apistr=file_get_contents("http://api.map..com/telematics/v2/weather?location=%E4%B8%8A%E6%B5%B7&ak=");//獲取xml內容
$apiobj=simplexml_load_string($apistr);//解析xml代碼
$todayobj=$apiobj->results->result[0]->date;//讀取星期
$weatherobj=$apiobj->results->result[0]->weather;//讀取天氣
$windobj=$apiobj->results->result[0]->wind;//讀取風力
$temobj=$apiobj->results->result[0]->temperature;//讀取溫度
$contentStr="上海 {$todayobj} 天氣:{$weatherobj} 風力:{$windobj} 溫度:{$temobj}";
echo$contentStr;
?>
㈡ PHP怎麼解析通聯支付結果返回的xml
把接到的xml命名為$xml,然後下面兩句話處理成數組,這樣就好處理了
$xml=simplexml_load_string($xml);
$xml=(array)$xml;
var_mp($xml);
㈢ 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轉換成字元串!
$str = $xml->asXML();
$str就是你要的字元串
㈤ php把xml轉換為字元串
樓主我教你吧,首先xml文件里的內容為
<?xmlversion="1.0"encoding="ISO-8859-1"?>
<content
<name>lishi</name>
<age>17</age>
</content>
讀取xml文件內容
$str=file_get_contents($xml);$xml為xml文件路徑地址
將讀取的字元串內容轉化為xml對象
$obj=simplexml_load_string($str)
操作對象里的數據
$obj->name="lishi111";
$obj->age=77;
拼接新的字元串
$strNew="<?xml version='1.0' encoding='ISO-8859-1'?>";
$str.="<content><name>".$obj->name."</name";
$str.="<age>".$obj->age."</age></content>";
將新的字元串寫入xml文件
file_put_content($xml,$strNew);
最後一步拿分來吧,哈哈哈哈。有問題繼續。。。
㈥ xml用php解析是重命名php文件嗎
xml用大肢態php解析不是重命名php文件,用到了php的simplexml_load_file()方法,該方法會將xml文件生成一個SimpleXMLElement對象,該對象是繼承了Traversable介面的對象,即可以像數組那樣飢嫌遍歷其子集。
這樣,我們滾源就可以循環得到xml文件的內容
㈦ PHP怎麼解析微信支付結果返回的xml
$xml = $GLOBALS['HTTP_RAW_POST_DATA'悶搏];
json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);轉成數組,
或者直接銀罩頃使用微信支付WxPayDataBase類鋒陸下的
$wxPaydata->FromXml($xml)轉化數組
㈧ php 解析xml
看著這些代碼,好厲害的樣子,程序員牛
㈨ php如何解析多級xml報文
在該示例中,simplexml_load_file 函數用於載入 XML 文件並將其作為 SimpleXMLElement 對象返回。然後,我們可以使用 children() 方法訪問根節點的所有子節點,並使用 getName() 方法獲取每個子節點的名稱兄蠢。接下來,我們可以繼續使用銀肆 children() 方法訪問每個子節點的所有子節點,以此類推,直到達到所需的級羨搏陪別。
㈩ PHP中用simpleXML解析XML文檔,為什麼總出錯
你說的「而且單個測試都沒問題」只是抽樣測試脊差野,並不是測試全部。應該有至少一個XML格式是不正確的。如果你加慶握了我的代碼,應該會輸出這個不正確的XML的內容。你把這個內容貼出來給你看看,沒有什麼機密吧?如果可以的話,加網路HI。賬號:everalan
你加我的代碼後,有執行到die($xml)這一行嗎?有的話把輸出的XML內容發過來幫你分析一下
應該是XML本身的格式就不正確,自然解析失敗櫻喊
try{
$xmld = new SimpleXMLElement($xml);
}catch(Exception $e){
die($xml);
}
這樣出錯的時候就能知道那個XML是什麼內容就知道哪裡錯了