php-如果元素每个记录有相似的标记,则获取正确的xml值

我正在获取以下XML文件:

XML文件:

5EXZX4LPK

I Bornheim

2017-01-01

2017-12-31

ACCOUNTING

2007-09-01

RELATIONSHIP

5967007LI

SUN BANK

2018-01-01

2018-12-31

BALANCED

2008-09-01

PARENT

…使用此脚本,我将值输出为csv:

PHP文件:

$reader = new XMLReader();

$reader->open('php://stdin');

$output = fopen('php://stdout', 'w');

fputcsv($output, ['id', 'name']);

$xmlns = [

'abc' => 'http://www.abc-example.com'

];

$dom = new DOMDocument;

$xpath = new DOMXpath($dom);

foreach ($xmlns as $prefix => $namespaceURI) {

$xpath->registerNamespace($prefix, $namespaceURI);

}

while (

$reader->read() &&

(

$reader->localName !== 'ABCRecord' ||

$reader->namespaceURI !== $xmlns['abc']

)

) {

continue;

}

while ($reader->localName === 'ABCRecord') {

if ($reader->namespaceURI === 'http://www.abc-example.com') {

$node = $reader->expand($dom);

fputcsv(

$output,

[

$xpath->evaluate('string(abc:ABC)', $node),

$xpath->evaluate('string(abc:Entity/abc:Name)', $node)

]

);

}

$reader->next('ABCRecord');

}

…这样地:

输出:

5EXZX4LPK,"I Bornheim"

5967007LI,"SUN BANK"

然而…如果每个期间记录具有相同的标记定义,如何获取正确的“期间”值?

期望输出:

5EXZX4LPK,"I Bornheim",2017-01-01,2017-12-31,"ACCOUNTING",2007-09-01,"RELATIONSHIP"

5967007LI,"SUN BANK",2018-01-01,2018-12-31,"BALANCED",2008-09-01,"PARENT"

xml 标签带有符号php,php-如果元素每个记录有相似的标记,则获取正确的xml值相关推荐

  1. jquery 获取一组元素的选中项 - 函数、jquery获取复选框值、jquery获取单选按钮值...

    做表单提交时,如果现在还在用form提交,用户体验很差,所以一般使用ajax提交. 其中需要获取每个表单输入元素的值,获取的时候像文本框这些还好说,Jquery提供了 .val() 方法,获取很方便, ...

  2. 搭建dubbo项目解决dubbo.xml标签报错的问题

    搭建dubbo项目解决dubbo.xml标签报错的问题 参考文章: (1)搭建dubbo项目解决dubbo.xml标签报错的问题 (2)https://www.cnblogs.com/ajax-li/ ...

  3. JavaWeb的web.xml标签元素(二)

    JavaWeb的web.xml标签元素(一) 九.session-config 为Web应用中的javax.servlet.http.HttpSession对象定义参数 session-config ...

  4. JavaWeb的web.xml标签元素(一)

    普通信息标签 (1)display-name 定义了WEB应用的名字,在servletContextConfig display-name* XML语法: <display-name>Ap ...

  5. POM.xml 标签详解

    pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以 ...

  6. maven POM.xml 标签详解

    pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以 ...

  7. TestNG中的参数化– DataProvider和TestNG XML(带有示例)

    测试自动化,或所谓的自动化测试,并不像听起来那样容易. 必须考虑所有可能的用户交互的所有排列和组合,并且在此基础上,您将必须创建测试脚本以通过多种浏览器和OS组合来验证Web应用程序. 这就是参数化在 ...

  8. java 自定义xml_6.1 如何在spring中自定义xml标签

    dubbo自定义了很多xml标签,例如,那么这些自定义标签是怎么与spring结合起来的呢?我们先看一个简单的例子. 一 编写模型类 1 packagecom.hulk.testdubbo.model ...

  9. FusionCharts 的XML标签属性

    FusionCharts 的 XML标签属性有一下四种数据类型 * Boolean - 布尔类型,只能为1或者0.例如:<graph showNames='1′ > * Number - ...

最新文章

  1. microsoft visual basic保存时错误429_win10更新失败错误8000FFF的解决小技巧
  2. SpringCloud之Hystrix
  3. java抓新闻_【图片】【抓取】Java获取各大网站新闻【java吧】_百度贴吧
  4. linux系统几个重要图
  5. 又有一本图书在台湾出版了
  6. activity 点击后传递数据给fragment_Fragment 的过去、现在和将来
  7. Kindeditor小改动
  8. 来,一起来实现一个符合Promise/A+的Promose(1.0.1版本)
  9. Vue笔记:使用 axios 中 this 指向问题
  10. 掘金小册前端性能优化原理与实践读后总结
  11. 用算法去扫雷(go语言)
  12. 求助wpe封包遇到动态验证怎么办
  13. 项目实战第二十一讲:平台商品库
  14. 用户使用DocConvert处理文档后对DocConvert的评价
  15. Discuz论坛超漂亮手机模板
  16. 安装服务器系统后鼠标键盘没反应,安装Win7系统以后键盘鼠标不能用/失灵没反应的缘由以及解决方法...
  17. 如何使用python制作一款屏幕颜色提取器,附带exe文件
  18. ARM920T内存管理单元MMU
  19. c语言2逻辑与2是1吗,2.C语言逻辑运算符和表达式
  20. 进程和线程的区别 进程间的通信方式

热门文章

  1. linux下文件结构收藏
  2. 企业微信可以统计加班时长吗?如何查看?
  3. 软件框架-无绪开发4
  4. APIcloud开发——生成IOS系统测试版证书步骤详解
  5. 中国股市最“暴利”时代,而有的人活在15年的熊市!
  6. Win10无法拖动最大化窗口
  7. Linux批量修改文件名
  8. 1443:Addition Chains
  9. 两行轨道根数norad_极客历史记录的本周:NORAD跟踪圣诞老人,第一个HTTP测试,巴贝奇诞辰...
  10. R语言学习记录:聚类分析的R实现