首页 >后端开发 >php教程 >php 解析Xml文档

php 解析Xml文档

WBOY
WBOY原创
2016-06-23 14:39:05985浏览


3

0



由东莞沙田一分部发往东莞公司



快件已到达东莞公司扫描员是李月文上一站是东莞沙田一分部

time>2013-12-02 01:35
由东莞公司发往成都分拨中心



快件已到达成都分拨中心扫描员是李汉兵上一站是东莞公司

由成都分拨中心发往达州(0818-2660770)



快件已到达达州(0818-2660770)扫描员是81800上一站是成都分拨中心



由达州(0818-2660770)发往大竹(0818-6259812,15908382116)

快件已到达大竹(0818-6259812,15908382116)扫描员是81801上一站是达州(0818-2660770)



大竹(0818-6259812,15908382116)的派件员88号正在派件



大竹(0818-6259812,15908382116)正在进行货件留仓扫描



已签收,签收人是本人



580038002019
天天快递
tiantian
1386399373
4373
ASC


XML格式,希望循环输出item里面的内容!


回复讨论(解决方案)

header('Content-type: text/html;charset=utf-8');$s =<<< XML<?xml version='1.0' encoding="utf-8"?> <response><status>3</status><message/><errCode>0</errCode><data><item><time>2013-12-01 23:42</time><context>由东莞沙田一分部发往东莞公司</context></item><item><time>2013-12-02 00:35</time><context>快件已到达东莞公司扫描员是李月文上一站是东莞沙田一分部</context></item><item><time>2013-12-02 01:35</time><context>由东莞公司发往成都分拨中心</context></item><item><time>2013-12-03 18:41</time><context>快件已到达成都分拨中心扫描员是李汉兵上一站是东莞公司</context></item><item><time>2013-12-03 20:27</time><context>由成都分拨中心发往达州(0818-2660770)</context></item><item><time>2013-12-04 12:58</time><context>快件已到达达州(0818-2660770)扫描员是81800上一站是成都分拨中心</context></item><item><time>2013-12-04 13:24</time><context>由达州(0818-2660770)发往大竹(0818-6259812,15908382116)</context></item><item><time>2013-12-04 16:32</time><context>快件已到达大竹(0818-6259812,15908382116)扫描员是81801上一站是达州(0818-2660770)</context></item><item><time>2013-12-04 16:32</time><context>大竹(0818-6259812,15908382116)的派件员88号正在派件</context></item><item><time>2013-12-04 16:33</time><context>大竹(0818-6259812,15908382116)正在进行货件留仓扫描</context></item><item><time>2013-12-06 12:43</time><context>已签收,签收人是本人</context></item></data><html/><mailNo>580038002019</mailNo><expTextName>天天快递</expTextName><expSpellName>tiantian</expSpellName><update>1386399373</update><cache>4373</cache><ord>ASC</ord></response>XML;$xml = simplexml_load_string($s);foreach($xml->xpath('//item') as $item) {  echo $item->time, ' ', $item->context, PHP_EOL;} 
2013-12-01 23:42 由东莞沙田一分部发往东莞公司
2013-12-02 00:35 快件已到达东莞公司扫描员是李月文上一站是东莞沙田一分部
2013-12-02 01:35 由东莞公司发往成都分拨中心
2013-12-03 18:41 快件已到达成都分拨中心扫描员是李汉兵上一站是东莞公司
2013-12-03 20:27 由成都分拨中心发往达州(0818-2660770)
2013-12-04 12:58 快件已到达达州(0818-2660770)扫描员是81800上一站是成都分拨中心
2013-12-04 13:24 由达州(0818-2660770)发往大竹(0818-6259812,15908382116)
2013-12-04 16:32 快件已到达大竹(0818-6259812,15908382116)扫描员是81801上一站是达州(0818-2660770)
2013-12-04 16:32 大竹(0818-6259812,15908382116)的派件员88号正在派件
2013-12-04 16:33 大竹(0818-6259812,15908382116)正在进行货件留仓扫描
2013-12-06 12:43 已签收,签收人是本人

header('Content-type: text/html;charset=utf-8');$s =<<< XML<?xml version='1.0' encoding="utf-8"?> <response><status>3</status><message/><errCode>0</errCode><data><item><time>2013-12-01 23:42</time><context>由东莞沙田一分部发往东莞公司</context></item><item><time>2013-12-02 00:35</time><context>快件已到达东莞公司扫描员是李月文上一站是东莞沙田一分部</context></item><item><time>2013-12-02 01:35</time><context>由东莞公司发往成都分拨中心</context></item><item><time>2013-12-03 18:41</time><context>快件已到达成都分拨中心扫描员是李汉兵上一站是东莞公司</context></item><item><time>2013-12-03 20:27</time><context>由成都分拨中心发往达州(0818-2660770)</context></item><item><time>2013-12-04 12:58</time><context>快件已到达达州(0818-2660770)扫描员是81800上一站是成都分拨中心</context></item><item><time>2013-12-04 13:24</time><context>由达州(0818-2660770)发往大竹(0818-6259812,15908382116)</context></item><item><time>2013-12-04 16:32</time><context>快件已到达大竹(0818-6259812,15908382116)扫描员是81801上一站是达州(0818-2660770)</context></item><item><time>2013-12-04 16:32</time><context>大竹(0818-6259812,15908382116)的派件员88号正在派件</context></item><item><time>2013-12-04 16:33</time><context>大竹(0818-6259812,15908382116)正在进行货件留仓扫描</context></item><item><time>2013-12-06 12:43</time><context>已签收,签收人是本人</context></item></data><html/><mailNo>580038002019</mailNo><expTextName>天天快递</expTextName><expSpellName>tiantian</expSpellName><update>1386399373</update><cache>4373</cache><ord>ASC</ord></response>XML;$xml = simplexml_load_string($s);foreach($xml->xpath('//item') as $item) {  echo $item->time, ' ', $item->context, PHP_EOL;} 
2013-12-01 23:42 由东莞沙田一分部发往东莞公司
2013-12-02 00:35 快件已到达东莞公司扫描员是李月文上一站是东莞沙田一分部
2013-12-02 01:35 由东莞公司发往成都分拨中心
2013-12-03 18:41 快件已到达成都分拨中心扫描员是李汉兵上一站是东莞公司
2013-12-03 20:27 由成都分拨中心发往达州(0818-2660770)
2013-12-04 12:58 快件已到达达州(0818-2660770)扫描员是81800上一站是成都分拨中心
2013-12-04 13:24 由达州(0818-2660770)发往大竹(0818-6259812,15908382116)
2013-12-04 16:32 快件已到达大竹(0818-6259812,15908382116)扫描员是81801上一站是达州(0818-2660770)
2013-12-04 16:32 大竹(0818-6259812,15908382116)的派件员88号正在派件
2013-12-04 16:33 大竹(0818-6259812,15908382116)正在进行货件留仓扫描
2013-12-06 12:43 已签收,签收人是本人


我上面的xml是一个链接内的内容,我怎么得取链接内的xml,并做处理?

simplexml_load_file(文件名)
simplexml_load_string(file_get_contents(文件名))

关键在于取到的必须是纯xml文档,不能含有其他内容
否则要当做字符串处理一下

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn