xml 通过正则抓取字段
$str = '<xml>
<appid><![CDATA[wxd49ea66070209a6e]]></appid>
<bank_type><![CDATA[CFT]]></bank_type>
<cash_fee><![CDATA[1]]></cash_fee>
<fee_type><![CDATA[CNY]]></fee_type>
<is_subscribe><![CDATA[Y]]></is_subscribe>
<mch_id><![CDATA[1497568502]]></mch_id>
<nonce_str><![CDATA[nwuqfmxz4gep7b2fk6svun03p12l04rb]]></nonce_str>
<openid><![CDATA[oS_Kl1UfWDOyZ37Aov2cJfg4dogc]]></openid>
<out_trade_no><![CDATA[20180130195025526]]></out_trade_no>
<result_code><![CDATA[SUCCESS]]></result_code>
<return_code><![CDATA[SUCCESS]]></return_code>
<sign><![CDATA[9FFE299F266420606B6FA25ED2E3ABE1]]></sign>
<time_end><![CDATA[20180130195102]]></time_end>
<total_fee>1</total_fee>
<trade_type><![CDATA[NATIVE]]></trade_type>
<transaction_id><![CDATA[4200000071201801303667079420]]></transaction_id>
</xml>';
$arr = array();
$xmlTag = array(
'appid','bank_type','cash_fee','fee_type','is_subscribe','mch_id',
'nonce_str','openid','out_trade_no','result_code','return_code','sign',
'time_end','total_fee','trade_type','transaction_id'
);
foreach($xmlTag as $x){
//echo $x;
preg_match_all("/<".$x.">.*<\/".$x.">/",$str,$temp);
$arr[$x] = $temp[0][0];
} //去除XML标签并组装数据
dump($arr);
$data = array();
foreach($arr as $key => &$value) {
$temp_a = explode('<'.$key.'>'.'<![CDATA[', $value);
$str_len = strlen("]]</".$key.">\"");// 该字符串长度;
$v = substr($temp_a[1],0,-$str_len);
$value = $v;
// dump($v);
}
dump($arr);
echo $arr['appid'];
exit; -----------------------------------------------------------------------------------------
array(16) {
["appid"] => string(45) "<appid><![CDATA[wxd49ea66070209a6e]]></appid>"
["bank_type"] => string(38) "<bank_type><![CDATA[CFT]]></bank_type>"
["cash_fee"] => string(34) "<cash_fee><![CDATA[1]]></cash_fee>"
["fee_type"] => string(36) "<fee_type><![CDATA[CNY]]></fee_type>"
["is_subscribe"] => string(42) "<is_subscribe><![CDATA[Y]]></is_subscribe>"
["mch_id"] => string(39) "<mch_id><![CDATA[1497568502]]></mch_id>"
["nonce_str"] => string(67) "<nonce_str><![CDATA[nwuqfmxz4gep7b2fk6svun03p12l04rb]]></nonce_str>"
["openid"] => string(57) "<openid><![CDATA[oS_Kl1UfWDOyZ37Aov2cJfg4dogc]]></openid>"
["out_trade_no"] => string(58) "<out_trade_no><![CDATA[20180130195025526]]></out_trade_no>"
["result_code"] => string(46) "<result_code><![CDATA[SUCCESS]]></result_code>"
["return_code"] => string(46) "<return_code><![CDATA[SUCCESS]]></return_code>"
["sign"] => string(57) "<sign><![CDATA[9FFE299F266420606B6FA25ED2E3ABE1]]></sign>"
["time_end"] => string(47) "<time_end><![CDATA[20180130195102]]></time_end>"
["total_fee"] => string(24) "<total_fee>1</total_fee>"
["trade_type"] => string(43) "<trade_type><![CDATA[NATIVE]]></trade_type>"
["transaction_id"] => string(73) "<transaction_id><![CDATA[4200000071201801303667079420]]></transaction_id>"
}
array(16) {
["appid"] => string(18) "wxd49ea66070209a6e"
["bank_type"] => string(3) "CFT"
["cash_fee"] => string(1) "1"
["fee_type"] => string(3) "CNY"
["is_subscribe"] => string(1) "Y"
["mch_id"] => string(10) "1497568502"
["nonce_str"] => string(32) "nwuqfmxz4gep7b2fk6svun03p12l04rb"
["openid"] => string(28) "oS_Kl1UfWDOyZ37Aov2cJfg4dogc"
["out_trade_no"] => string(17) "20180130195025526"
["result_code"] => string(7) "SUCCESS"
["return_code"] => string(7) "SUCCESS"
["sign"] => string(32) "9FFE299F266420606B6FA25ED2E3ABE1"
["time_end"] => string(14) "20180130195102"
["total_fee"] => bool(false)
["trade_type"] => string(6) "NATIVE"
["transaction_id"] => &string(28) "4200000071201801303667079420"
}
wxd49ea66070209a6e
xml 通过正则抓取字段的更多相关文章
- java中使用 正则 抓取邮箱
我们来抓取豆瓣网的邮箱吧!把这个页面的所有邮箱都抓取下来 如https://www.douban.com/group/topic/8845032/: 代码如下: package cn.zhangzon ...
- Python爬虫【三】利用requests和正则抓取猫眼电影网上排名前100的电影
#利用requests和正则抓取猫眼电影网上排名前100的电影 import requests from requests.exceptions import RequestException imp ...
- 正则抓取网页所有href和src
根据抓取的页面,用正则来匹配页面href和src string UserAgent = "Mozilla/5.0 (Windows NT 5.2; rv:29.0) Gecko/201001 ...
- 使用Request+正则抓取猫眼电影(常见问题)
目前使用Request+正则表达式,爬取猫眼电影top100的例子很多,就不再具体阐述过程! 完整代码github:https://github.com/connordb/Top-100 总结一下,容 ...
- 使用PHP的正则抓取页面中的网址
最近有一个任务,从页面中抓取页面中所有的链接,当然使用PHP正则表达式是最方便的办法.要写出正则表达式,就要先总结出模式,那么页面中的链接会有几种形式呢? 链接也就是超级链接,是从一个元素(文字. ...
- 调用 CURL 使用正则抓取信息
Class MyCurl{ protected $_pdo; //构造方法 链接数据库 public function __construct(){ $this->_pdo ...
- (python3爬虫实战-第一篇)利用requests+正则抓取猫眼电影热映口碑榜
今天是个值得纪念了日子,我终于在博客园上发表自己的第一篇博文了.作为一名刚刚开始学习python网络爬虫的爱好者,后期本人会定期发布自己学习过程中的经验与心得,希望各位技术大佬批评指正.以下是我自己做 ...
- Java正则抓取email
实现思路 1.使用Java.net.URL对象,绑定网络上某一个网页的地址 2.通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象 3.通过 ...
- 我也来学着写写WINDOWS服务-解析xml抓取数据并插入数据库
项目告一段落,快到一年时间开发了两个系统,一个客户已经在试用,一个进入客户测试阶段,中间突然被项目经理(更喜欢叫他W工)分派一个每隔两小时用windows服务去抓取客户提供的外网xml,解析该xml, ...
随机推荐
- 珍珠 Median Weight Bead 977
描述 There are N beads which of the same shape and size, but with different weights. N is an odd numbe ...
- 系统滴答定时器(SysTick)中断配置
系统滴答定时器(SysTick)中断配置 在STM32标准库中是通过SysTick_Config()函数配置时钟中断的,然后SysTick_Handler()函数自动定时触发其中的函数. if(Sys ...
- DataSet转化为DataTable
. DataTable dt = ds.Tables[]; . DataTable dt = dao.FillTables("GetOptions_DKI_City_HCPName" ...
- BZOJ 3166 HEOI2013 ALO 可持久化trie+st表
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3166(洛谷上也有) 题意概述: 给出一个序列,对于一个区间,其权值为区间中的次大值亦或区 ...
- HDU 5816 Hearthstone 概率dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5816 Hearthstone Time Limit: 2000/1000 MS (Java/Othe ...
- 代替iframe的方法
$('#framecont').html('').load("pageURL"); 使用jQuery.
- <Effective C++>读书摘要--Implementations<二>
<Item29> Strive for exception-safe code. 1.如下面的代码 class PrettyMenu { public: ... void changeBa ...
- <Effective C++>读书摘要--Implementations<一>
1.For the most part, coming up with appropriate definitions for your classes (and class templates) a ...
- C# HttpWebRequest post提交数据,提交对象
1.客户端方法 //属于客户端 //要向URL Post的方法 public void PostResponse() { HttpWebRequest req = (HttpWebRequest)Ht ...
- 使用协程(gevent)实现请求
协程,又称微线程.英文名Coroutine. 协程最大的优势就是协程极高的执行效率.因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就 ...