Hello
I am very new to xml and xsl. I have what is probably the simplist of simple.
I have a xml file sent to me from a customer. When I open it in excel it gives
me a at least 1 line for every PO or more lines if there are 2 or more
PO lines. So If there are 5 POs and 2 of those have 3 PO lines, excel will
show 9 records. I need fields from the POHeader, POLIne, and ShipTo sections.
Where there is more than 1 POLine, any header or ship to info I have is just
repeated in those rows by excel, which is what I want. My xsl code that I have
messes up when I have a PO with more than 1 POLine. It adds up the info from
both lines and puts them in the same node. Here is the xml. There are a ton
more fields than I am showing. I just need a handful of them.
<EntireOrder>
<PO>
<POHeader>
</SomeHeaderInfo1>
</SomeHeaderInfo2>
</POHeader>
<POLine>
<Line1>
</SomeLineInfo2>
</ShipTo>
</ShipInfo1>
</ShipTo>
</POLine>
<POLine>
<Line2>
</SomeLineInfo2>
<ShipTo>
</ShipInfo1>
</ShipTo>
</POLine>
</PO>
</EntireOrder>
My xsl:
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<Orders>
<xsl:for-each select="EntireOrder/PO">
<Order>
<ShipToCustomer><xsl:apply-templates
select="POLine/ShipTo/ShipInfo1"/></ShipToCustomer>
<Description><xsl:apply-templates
select="POLine/SomeLineInfo2"/></Description>
<Quantity><xsl:apply-templates select="POLine/SomeOtherLineInfo"/></Quantity>
<Buyer><xsl:apply-templates select="POHeader/SomeHeaderInfo1"/></Buyer>
<Phone><xsl:apply-templates select="POHeader/SomeHeaderInfo2"/></Phone>
<UnitPrice><xsl:apply-templates select="POLine/SomeLineInfo3"/></UnitPrice>
<Total><xsl:apply-templates select="POLine/SomeLineInfo4"/></Total>
</Order>
</xsl:for-each>
</Orders>
</xsl:template>
Again, if I have say 2 lines on a PO, I will get 1 line for the PO but say the
Buyer element will have both lines in the same element. Heres what I get when
there are more than 1 line. Notice all the elements coming from POLine just
double up the data. I would like 2 different <Order> records.
<Order>
<ShipToCustomer>Walmart</ShipToCustomer
<Description>TagsTags</Description>
<Quantity>100100>
<Buyer>Steve</Buyer>
<phone>555-5555</phone>
<UnitPrice>1010</UnitPrice>
<Total>10001000</Total>
</Order>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--