>  기사  >  백엔드 개발  >  php xml 正则表达式 数组的应用

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

WBOY
WBOY원래의
2016-06-23 14:09:08747검색

接收到类似下面一个xml文件,想把文件的内容分成对应的数组 输出出来,应该怎么处理
比如:

我是个算命先生 的“我是个算命先生”应该是个字段
易之的“易之”应该是个字段
***中间的内容
7507424758 中的“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>


回复讨论(解决方案)

前面有个大侠 给了一段代码:
preg_match_all('/>(.+)',$s,$m);
print_r($m[1]);
这段代码可以把我要的内容输出出来,我想的是把他对应起来。

7507424758 
   9787507424751 
  我是个算命先生 
  245 
  易之 
  29.90元 
  中国城市出版社 
  平装 
$isbn10="7507424758";
$pages="245";

还有个问题 就是(类似数据项)isbn10,isbn13,title,pages等等,有些图书有,有些图书没有,所以我必须 能对应的取回参数对应的数据。

$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);
 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.