//假设xml字符串
目前创新互联公司已为上千家的企业提供了网站建设、域名、网站空间、网站改版维护、企业网站设计、西安网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
$postStr = 'xmlToUserName![CDATA[toUser]]/ToUserNameFromUserName![CDATA[FromUser]]/FromUserNameCreateTime123456789/CreateTimeMsgType![CDATA[text]]/MsgTypeContent![CDATA[p1]]/Content/xml';
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
var_dump($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字符串解析为对象
xml_parse_into_struct — 将 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(" ");
//本行测试不可行 $client = new SoapClient(" ;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
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"videolast2014-7-11 12:08:07/lastid19393/idtid7/tidname![CDATA[越轨追击]]/nametype爱情/typepic;/piclang英语/langarea欧美/areayear2005/yearstate0/statenote![CDATA[HD]]/noteactor![CDATA[克里夫·欧文 詹妮弗·安妮斯顿]]/actordirector![CDATA[米凯尔·哈弗斯特罗姆]]/directordldd flag="jjvod"![CDATA[HD$jjhd://20000|b3a97575c3df592ec08adb93c54a9c2dcf7dc332|越轨追击HD中字1280高清.rmvb$jjvod]]/dd/dldes![CDATA[他又无法求助于警察,他现在必须找到露辛达,依靠两个人的力量夺回曾经宁静的生活。]]/des/video/list/rss';
$result = simplexml_load_string($xml);
//var_dump($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;
}
?
先给你个以前写的读取xml格式的天气预报的代码吧,比着葫芦画瓢,不懂再追问
?php
$apistr=file_get_contents(";ak=B8aced94da0b345579f481a1294c9094"); //获取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 = "上海\n{$todayobj}\n天气:{$weatherobj}\n风力:{$windobj}\n温度:{$temobj}";
echo $contentStr;
?
创建一个以.xml结尾的文档
内容如下:
?xml
version="1.0"
encoding="utf-8"?
class
student
info="美女"
name小乔/name
sex女/sex
age20/age
/student
student
name周瑜/name
sex男/sex
age25/age
/student
student
namehsy/name
sex男/sex
age21/age
/student
/class
创建以.php结尾的文件:代码如下:
?php
header('content-type:text/html;charset=utf-8');
//1、创建一个DOMDocument对象。该对象就表示
xml文件
$xmldoc
=
new
DOMDocument();
//2、加载xml文件(指定要解析哪个xml文件,此时dom树节点就会加载到内存中)
$xmldoc-load("class.xml");
//3、目标:获取第一个学生的名字
$stu
=
$xmldoc-getElementsByTagName("name");//直接找到节点name
$stu1
=
$stu-item(0);//
item(1)时,可以取到周瑜
$sex=$xmldoc-getElementsByTagName("sex");
$sex1=
$sex-item(0);
echo
$sex1-nodeValue;
echo
$stu1-nodeValue;
?
结果显示为:女小乔