![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Loop through children >Thread Next - Re: Loop through children Re: Loop through childrenTo: NULL Date: 3/28/2008 5:32:00 PM
tshad wrote:
> If I have the following xml:
>
> <?xml version="1.0" encoding="utf-8"?>
> <REPORT VERSION="1.10" FILENUM="" DESCRIPTION="Form Utility XML: 3/18/2008
> 12:27:13 PM" MAJORFORM="1004">
> <ORDER></ORDER>
> <TRACKING></TRACKING>
> <FORMS>
> <FORM NUM="1" FORMCODE="1004" SECCODE="1" DESC="" MAJOR="True" >
> <FIELDS>
> <OTHERFILENUMBER>692</OTHERFILENUMBER>
> <FNMA_FILENUMBER>693</FNMA_FILENUMBER>
> <SUBPROPADDRESS>3</SUBPROPADDRESS>
> </FIELDS>
> <FORMPHOTOS></FORMPHOTOS>
> <ATTACHMENTS></ATTACHMENTS>
> </FORM>
> </FORMS>
> </REPORT>
>
> I have can have about 200 nodes under the <FIELDS> node.
>
> Each node has it's own name.
>
> What I am looking for is to build an style sheet that loops through the
> children and creates a set of nodes that would look something like:
>
> <?xml version="1.0" encoding="utf-8"?>
> <REPORT>
> <form>
> <sectionNumber>1</sectionNumber>
> <primary>True</primary>
> <formName>1004</formName>
> <tagName>OTHERFILENUMBER</tagName>
> <value>692</value>
> <form>
> <form>
> <sectionNumber>1</sectionNumber>
> <primary>True</primary>
> <formName>1004</formName>
> <tagName>FNMA_FILENUMBER</tagName>
> <value>693</value>
> <form>
> <form>
> <sectionNumber>1</sectionNumber>
> <primary>True</primary>
> <formName>1004</formName>
> <tagName>SUBPROPADDRESS</tagName>
> <value>SUBPROPADDRESS</value>
> <form>
> </REPORT>
Here is a stylesheet that performs the transformation:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="REPORT">
<xsl:copy>
<xsl:apply-templates select="FORMS/FORM/FIELDS/*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="FIELDS/*">
<form>
<sectionNumber><xsl:value-of
select="../../@SECCODE"/></sectionNumber>
<primary>True</primary>
<formName><xsl:value-of select="../../@FORMCODE"/></formName>
<tagName><xsl:value-of select="name()"/></tagName>
<value><xsl:value-of select="."/></value>
</form>
</xsl:template>
</xsl:stylesheet>
--
Martin Honnen --- MVP XML
http://JavaScript.FAQTs.com/
| ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||||
|
