当前位置:首页 » 编程语言 » xml解析php

xml解析php

发布时间: 2022-04-30 15:48:30

php Xml解析中的问题

xml格式组织不对。

<weather_data>下面的元素应该再分一层才可以,现在的格式并不能区分每个日期,可以这样:

<CityWeatherResponse>
<error>0</error>
<status>success</status>
<date>2015-03-24</date>
<results>
<currentCity>郑州</currentCity>
<weather_data>
<data>
<date>周二03月24日(实时:14℃)</date>
<weather>小雨</weather>
<wind>微风</wind>
<temperature>10℃</temperature>
</data>
<data>
<date>周三</date>
<weather>阴转小雨</weather>
<wind>微风</wind>
<temperature>16~9℃</temperature>
</data>
<data>
<date>周四</date>
<weather>阵雨转多云</weather>
<wind>微风</wind>
<temperature>15~7℃</temperature>
</data>
<data>
<date>周五</date>
<weather>晴</weather>
<wind>风</wind>
<temperature>10℃</temperature>
</data>
</weather_data>
</results>
</CityWeatherResponse>

遍历:

foreach($xml->results->weather_data->dataas$exml)
{
echo$exml->date."<br>";
}

② 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问题

php 有专门的函数 处理 xml 你看看 simplexml_load_string() 了解这个函数相关的知识点

④ 几种php解析xml方式

最简单的实用的:SimpleXML是PHP5后提供的一套简单易用的xml工具集,可以把xml转换成方便处理的对象,也可以组织生成xml数据。不过它不适用于包含namespace的xml,而且要保证xml格式完整(well-formed)。它提供了三个方法:simplexml_import_dom、simplexml_load_file、simplexml_load_string,函数名很直观地说明了函数的作用。三个函数都返回SimpleXMLElement对象,数据的读取/添加都是通过SimpleXMLElement操作
参数使用,可以参考手册

⑤ php 如何解析xml格式字符串

//假设xml字符串
$postStr = '<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[FromUser]]></FromUserName><CreateTime>123456789</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[p1]]></Content></xml>';
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
var_mp($postObj);

/**
object(SimpleXMLElement)[16] public 'ToUserName' => string 'toUser' (length=6) public 'FromUserName' => string 'FromUser' (length=8) public 'CreateTime' => string '123456789' (length=9) public 'MsgType' => string 'text' (length=4) public 'Content' => string 'p1' (length=2)
*/
//把xml字符串解析为对象

⑥ php读取XML文件,并解析成数组

simplexml_load_string可以把xml解析成对象,然后可以用var_mp进行解析。
php内部库并没有包含直接把xml解析成数组的模块。
而且xml本来包含节点概念,解析成对象以后可以直接访问每一个节点,而数组相对就要难以理解的多。
因此解析成数组并不比解析成对象有多少优势。
如果你对数组实在有需求的话,可以自己写一个库,并不会太难。

⑦ 请问下面这个XML文档用PHP该如何解析

写了个例子,你参照一下:
<?php
$doc = new DOMDocument;
$doc->load('test.xml');
$items = $doc->getElementsByTagName('Flight');
foreach ( $items as $item ) {
echo $item->getAttribute('FlightNo')."\n";
echo $item->getAttribute('AirCompanyCode')."\n";
echo $item->getAttribute('AirCompanyName')."\n";
}
?>

⑧ 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
header("Content-type: text/html; charset=utf-8");
$xml = '<?xml version="1.0" encoding="utf-8"?><rss version="5.0"><list page="1" pagecount="1" pagesize="20" recordcount="1"><video><last>2014-7-11 12:08:07</last><id>19393</id><tid>7</tid><name><![CDATA[越轨追击]]></name><type>爱情</type><pic>http://img.jijizy.com/upload/vod/2014-07-11/20147111274361461.jpg</pic><lang>英语</lang><area>欧美</area><year>2005</year><state>0</state><note><![CDATA[HD]]></note><actor><![CDATA[克里夫·欧文 詹妮弗·安妮斯顿]]></actor><director><![CDATA[米凯尔·哈弗斯特罗姆]]></director><dl><dd flag="jjvod"><![CDATA[HD$jjhd://20000||越轨追击HD中字1280高清.rmvb$jjvod]]></dd></dl><des><![CDATA[他又无法求助于警察,他现在必须找到露辛达,依靠两个人的力量夺回曾经宁静的生活。]]></des></video></list></rss>';
$result = simplexml_load_string($xml);
//var_mp($result); //可以打印看看结果如何
$result = object_to_array($result);
//print_r($result['list']['video']);exit;
foreach($result['list']['video'] as $key=>$v){
echo $key."=".$v."\n";
}

function object_to_array($obj){
$arr = array();
$_arr = is_object($obj)? get_object_vars($obj) :$obj;
foreach ($_arr as $key => $val){
$val=(is_array($val)) || is_object($val) ? object_to_array($val) :$val;
$arr[$key] = $val;
}
return $arr;

}

?>

⑩ php 如何解析带属性的xml

<?php
//读取xml
$dom=new DOMDocument('1.0');
$dom->load('data.xml');
$em=$dom->getElementsByTagName('videos');//最外层节点
$em=$em->item(0);
$items=$em->getElementsByTagName('video');//节点
//如果不用读取直接添加的话把下面这一段去掉即可
foreach($items as $a){
foreach($a->attributes as $b){//$b->nodeValue;节点属性的值$b->nodeName;节点属性的名称
echo $b->nodeName;
echo ":";
echo $b->nodeValue;
echo "<br/>";
}
}

热点内容
c语言自考 发布:2025-05-15 07:52:42 浏览:499
压缩的玉 发布:2025-05-15 07:51:22 浏览:788
android的控件 发布:2025-05-15 07:50:36 浏览:551
南岗法院服务器ip地址 发布:2025-05-15 07:46:02 浏览:286
实况如何退出账号安卓 发布:2025-05-15 07:45:56 浏览:917
深入编译器 发布:2025-05-15 07:41:35 浏览:878
电信手机号服务密码怎么查 发布:2025-05-15 07:40:10 浏览:613
python全局变量文件 发布:2025-05-15 07:35:06 浏览:954
字节和存储字节 发布:2025-05-15 07:32:10 浏览:521
linux应用开发工程师 发布:2025-05-15 07:32:07 浏览:261