Hi,
I’m using Java Aspose Reporting Engine and xml data source loaded as DataSet object,
Can I access a specific element of an array by its index? Without indexOf inside a foreach or skip() method?
My requirement is to use a simple syntax in this case, something like mentioned in the example expected code section
Example:
XML source
<person>
<name>Person's Name</name>
<address>
<street>AddressStreet1</street>
<code>AddressCode1</code>
</address>
<address>
<street>AddressStreet2</street>
<code>AddressCode2</code>
</address>
<address>
<street>AddressStreet3</street>
<code>AddressCode3</code>
</address>
<address>
<street>AddressStreet4</street>
<code>AddressCode4</code>
</address>
</person>
Template
<<foreach [in person]>>
### Working example (Workarounds)
# index 0
<<[person.address.first().street]>>
# index 3
<<[person.address.skip(2).first().street]>>
# Using foreach
<<foreach [in person.address]>><<if [indexOf() == 3]>><<[street]>><</foreach>>
### Expected code (Not Working)
# example index 3
<<[person[3].street]>>
<<[person.elementAt(3).street]>>
<<[persong.get(1).street]>>
<</foreach>
Java 17 code
public class A {
public static void B() {
Document doc = new Document(DOC_PATH);
var ds = new DataSet().readXml(XML_PATH);
ReportingEngine engine = new ReportingEngine();
engine.setOptions(
ReportBuildOptions.REMOVE_EMPTY_PARAGRAPHS +
ReportBuildOptions.ALLOW_MISSING_MEMBERS);
engine.buildReport(doc, ds, "doc");
}
}