php xml 正则表达式 数组的应用

dengwork 2013-05-08 06:57:55
接收到类似下面一个xml文件,想把文件的内容分成对应的数组 输出出来,应该怎么处理
比如:
<title>我是个算命先生</title> 的“我是个算命先生”应该是个字段
<name>易之</name>的“易之”应该是个字段
<summary>***</summary>中间的内容
<db:attribute name="isbn10">7507424758</db:attribute> 中的“7507424758”
比如(最后得到类似的数据):

$isbn10="7507424758";
$pages="245";


<?xml version="1.0" encoding="UTF-8" ?>
- <entry xmlns="http://www.w3.org/2005/Atom" xmlns:db="http://www.douban.com/xmlns/" xmlns:gd="http://schemas.google.com/g/2005" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:opensearch="http://a9.com/-/spec/opensearchrss/1.0/">
<id>http://api.douban.com/book/subject/10506822</id>
<title>我是个算命先生</title>
<category scheme="http://www.douban.com/2007#kind" term="http://www.douban.com/2007#book" />
- <author>
<name>易之</name>
</author>
<link href="http://api.douban.com/book/subject/10506822" rel="self" />
<link href="http://book.douban.com/subject/10506822/" rel="alternate" />
<link href="http://img3.douban.com/spic/s8993763.jpg" rel="image" />
<link href="http://m.douban.com/book/subject/10506822/" rel="mobile" />
<summary>《我是个算命先生》内容简介:算命这个行当,萌芽于先秦,发展于隋唐,泛滥于明清;汉代张良、三国诸葛亮、明代刘伯温,不同时期的代表人物,都在手相、面相、八字、八卦中辨认着人类的命运。祖爷,生于1902年,卒年不详,民国时期名震大江南北的算命群体“江相派”掌门人。《沪报》将他与袁树珊、韦千里、徐乐吾并称为“民国四大算命宗师”,所谓“南袁北韦东乐吾,三仙归来问祖爷”。祖爷15岁开始为人算命,每算必中,令人咋舌;而后叱咤江湖30多年,留下无数不可思议的神算传奇与悬念;乃至于中原大战之前,山西军阀阎锡山也三顾茅庐,终于求得祖爷一卦。祖爷总说,看的是面相,算的是八字,捕捉的是问卦人脸上不断闪烁的欲望:贪婪、虚荣、妒忌、恐惧、傲慢——人的命运,确实写在脸上。祖爷一生几乎从未失手,唯一没有算到的,却是他自己的命运;面对凄凉晚景,他认为是自己泄露了太多天机…… 翻开《我是个算命先生》,让一个82岁的算命老先生带您见识算命背后的古老智慧与江湖猫腻。 海报:</summary>
<db:attribute name="isbn10">7507424758</db:attribute>
<db:attribute name="isbn13">9787507424751</db:attribute>
<db:attribute name="title">我是个算命先生</db:attribute>
<db:attribute name="pages">245</db:attribute>
<db:attribute name="author">易之</db:attribute>
<db:attribute name="price">29.90元</db:attribute>
<db:attribute name="publisher">中国城市出版社</db:attribute>
<db:attribute name="binding">平装</db:attribute>
<db:attribute name="pubdate">2012-2</db:attribute>
<db:attribute name="author-intro">易之,男,山东即墨人。8岁接触道家学派,12岁跟随当地异人合玄师傅修习四柱,大学师从国内知名玄学教授段景莲。现为中华周易协会常务理事。</db:attribute>
<db:tag count="585" name="算命" />
<db:tag count="463" name="小说" />
<db:tag count="197" name="骗局" />
<db:tag count="137" name="社会分析" />
<db:tag count="129" name="黑道学" />
<db:tag count="112" name="社会" />
<db:tag count="106" name="文化" />
<db:tag count="89" name="中国" />
<gd:rating average="7.0" max="10" min="0" numRaters="971" />
</entry>
...全文
197 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
一起混吧 2013-05-08
  • 打赏
  • 举报
回复
$s=<<<html

<db:attribute name="isbn10">7507424758</db:attribute> 
  <db:attribute name="isbn13">9787507424751</db:attribute> 
  <db:attribute name="title">我是个算命先生</db:attribute> 
  <db:attribute name="pages">245</db:attribute> 
  <db:attribute name="author">易之</db:attribute> 
  <db:attribute name="price">29.90元</db:attribute> 
  <db:attribute name="publisher">中国城市出版社</db:attribute> 
  <db:attribute name="binding">平装</db:attribute>
html;
preg_match_all('/(name="(.+)")?>(.+)</mU',$s,$m);
extract(array_combine($m[2],$m[3]));

var_dump($isbn10,$title);
dengwork 2013-05-08
  • 打赏
  • 举报
回复
前面有个大侠 给了一段代码: preg_match_all('/>(.+)</mU',$s,$m); print_r($m[1]); 这段代码可以把我要的内容输出出来,我想的是把他对应起来。 <db:attribute name="isbn10">7507424758</db:attribute> <db:attribute name="isbn13">9787507424751</db:attribute> <db:attribute name="title">我是个算命先生</db:attribute> <db:attribute name="pages">245</db:attribute> <db:attribute name="author">易之</db:attribute> <db:attribute name="price">29.90元</db:attribute> <db:attribute name="publisher">中国城市出版社</db:attribute> <db:attribute name="binding">平装</db:attribute> $isbn10="7507424758"; $pages="245"; 还有个问题 就是(类似<db:attribute name="title">数据项)isbn10,isbn13,title,pages等等,有些图书有,有些图书没有,所以我必须 能对应的取回参数对应的数据。

20,393

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧