㈠ 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是什么内容就知道哪里错了