鉴于:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<report Id="0" >
<property name="comments">comment</property>
<property name="test">sdcs</property>
<property name="test">csd</property>
<property name="eventHandlerClass">sdcs</property>
</report>
<report Id="1">
<property name="comments">comment</property>
<property name="test">dcs</property>
<property name="test">gds</property>
<property name="test">jds</property>
<property name="eventHandlerClass">sdcs</property>
</report>
</root>
预期输出:
Id=0, test=sdcs
Id=0, test=csd
Id=1, test=dcs
Id=1, test=gds
Id=1, test=jds
只寻找一个普通的 Xpath 1.0来实现这一点。尝试了各种函数和谓词,但未能获得如上所示的输出。本质上,阅读后我应该能够分辨出哪个“测试”属于哪个报告 ID。
试过:
/root/report/@Id | /root/report/property[@name="test"]
-- 但是在单独的行中给出结果
/root/report/ ( @Id | property[@name="test"])
-- 但是在单独的行中给出结果
concat( /root/report/@Id, /root/report/property[@name="test"])
-- 给出错误(认为 Concat 适用于单行结果)
string-join(/root/report/@Id | /root/report/property[@name="test"] , ',')
-- 所有内容都以一行形式出现,甚至是两个报告 ID。