XSLT looping variable number of times across multiple segments
Here should go questions about transforming XML with XSLT and FOP.
-
- Posts: 1
- Joined: Wed Feb 13, 2019 10:06 pm
XSLT looping variable number of times across multiple segments
I am very new to XSLT coding and I am looking help on copying XML file something like below. Source and Destination are same XML format as both are using the same XSD file. Please help me how to map this XML file. If I am using foreach loop every time it copied all the TimingAndDuration . So in our case TimingAndDuration copied 15 times instead of 5 times.
Please help me on how to code this scenario.
Please help me on how to code this scenario.
Code: Select all
<Instruction>TextValue1</<Instruction>>
<!-- Below 2 segments can be repeated 0 to 40 times I showed only 2 times below START -->
<MultipleTiming>TextValue2</MultipleTiming>
<TimingAndDuration>
<Field1>FieldVal_1</Field1>
<Field2>FieldVal_2</Field2>
<Field3>FieldVal_3</Field3>
</TimingAndDuration>
<MultipleTiming>TextValue21</MultipleTiming>
<TimingAndDuration>
<Field1>FieldVal_11</Field1>
<Field2>FieldVal_22</Field2>
<Field3>FieldVal_33</Field3>
</TimingAndDuration>
<!-- Below 2 segments can be repeated 0 to 40 times END -->
<Administration>TextValue2</Administration>
<DoseAdministration>TextValue3</DoseAdministration>
<TimingAndDuration>
<Field1>FieldVal_4</Field1>
<Field2>FieldVal_5</Field2>
<Field3>FieldVal_6</Field3>
</TimingAndDuration>
<!-- Below 2 segments can be repeated 0 to 40 times I showed only 2 times below START -->
<MultipleTiming>TextValue4</MultipleTiming>
<TimingAndDuration>
<Field1>FieldVal_7/Field1>
<Field2>FieldVal_8</Field2>
<Field3>FieldVal_9</Field3>
</TimingAndDuration>
<MultipleTiming>TextValue41</MultipleTiming>
<TimingAndDuration>
<Field1>FieldVal_71/Field1>
<Field2>FieldVal_81</Field2>
<Field3>FieldVal_91</Field3>
</TimingAndDuration>
<!-- Below 2 segments can be repeated 0 to 40 times END -->
-
- Posts: 9431
- Joined: Fri Jul 09, 2004 5:18 pm
Re: XSLT looping variable number of times across multiple segments
Hi,
If you want to change parts of an XML document, your XSLT needs to contain first of all the copy-template which is this one:
and in addition you can add xsl:templates to match certain nodes and change them in certain ways:
https://stackoverflow.com/questions/587 ... cial-cases
Most people using xsl:for-each in XSLT are doing so because they come from a background of procedural programming. With XSLT most of the work can be done with matching elements using templates.
Regards,
Radu
If you want to change parts of an XML document, your XSLT needs to contain first of all the copy-template which is this one:
Code: Select all
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
https://stackoverflow.com/questions/587 ... cial-cases
Most people using xsl:for-each in XSLT are doing so because they come from a background of procedural programming. With XSLT most of the work can be done with matching elements using templates.
Regards,
Radu
Radu Coravu
<oXygen/> XML Editor
http://www.oxygenxml.com
<oXygen/> XML Editor
http://www.oxygenxml.com
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service