如何在基于 XML 的 Jasper Report 中指定特定行

How to specific a certain row in an XML based Jasper Report

我正在尝试使用 XML 数据源 iReport 模板,但是,我需要从列出的对象中调出 Jasper 中的某些行。

<week-dates>
  <date dayNumber="1" iso="2021-07-12" formatted="07/11/2021" dayOfWeek="SUNDAY" dayOfWeekShort="Sun"/>
  <date dayNumber="2" iso="2021-07-13" formatted="07/12/2021" dayOfWeek="MONDAY" dayOfWeekShort="Mon"/>
  <date dayNumber="3" iso="2021-07-14" formatted="07/13/2021" dayOfWeek="TUESDAY" dayOfWeekShort="Tue"/>
  <date dayNumber="4" iso="2021-07-15" formatted="07/14/2021" dayOfWeek="WEDNESDAY" dayOfWeekShort="Wed"/>
  <date dayNumber="5" iso="2021-07-16" formatted="07/15/2021" dayOfWeek="THURSDAY" dayOfWeekShort="Thu"/>
  <date dayNumber="6" iso="2021-07-17" formatted="07/16/2021" dayOfWeek="FRIDAY" dayOfWeekShort="Fri"/>
  <date dayNumber="7" iso="2021-07-18" formatted="07/17/2021" dayOfWeek="SATURDAY" dayOfWeekShort="Sat"/>
</week-dates>

我可以得到第一个对象,在页眉带内使用 week-dates/date/@iso,但这应该用于遍历详细信息带中的对象。但是,我需要字段来专门调出某些行,例如 week-dates/date/iso[2] 从第 3 天调出 iso 日期。但是,我似乎无法让它工作。

有人对我如何在此列表中获取特定行以便我可以水平顺序使用文本字段有任何建议吗?

我想通了,元素索引需要在日期元素上,而不是 iso 级别

week-dates/date[5]/@iso

给出了预期的结果

虽然 week-dates/date[5]/@iso 适用于此特定示例,但在 XPath 中指定“dayNumber 属性等于 5 的日期元素”可能是更好的主意。

week-dates/date[@dayNumber=5]/@iso