From: Mike Brown <mike(_at_)skew(_dot_)org>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Newline problems
Date: Tue, 6 May 2003 09:09:23 -0600 (MDT)
Vishwajit Pantvaidya wrote:
> Here just to explain, I am inserting a simplified version of the
original
> xml and xsl:
>
> <Quote>
> <Info>
> <attribute>
> <name>
> BILL_TO_ADDRESS3</name>
> <atomicValue>PO BOX 1234</atomicValue>
> </attribute>
> <attribute>
> <name>
> BILL_TO_ADDRESS2</name>
> <atomicValue>MEDICAL CENTER</atomicValue>
> </attribute>
> <attribute>
> <name>
> PO_NUMBER</name>
> <atomicValue>123456</atomicValue>
> </attribute>
> </Info>
> </Quote>
>
>
> <?xml version = "1.0" encoding = "UTF-8"?>
> <xsl:transform xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
version =
> "1.0">
>
> <xsl:template match = "Quote">
> <xsl:text disable-output-escaping="yes"><!DOCTYPE
Order></xsl:text>
> <xsl:element name = "Order">
> <xsl:element name ="Info">
> <xsl:apply-templates mode = "Attribs" select = "/Quote/Info"/>
> </xsl:element>
> </xsl:element>
> </xsl:template>
>
>
> <xsl:template mode = "Attribs" match = "attribute">
> <xsl:element name="BILL_TO_ADDRESS2">
> <xsl:value-of
select="attribute/atomicValue[../name='BILL_TO_ADDRESS2']"/>
> </xsl:element>
> <xsl:element name="PO_NUMBER">
> <xsl:value-of select="attribute/atomicValue[../name='PO_NUMBER']"/>
> </xsl:template>
> </xsl:transform>
>
>
> I guess I could have used a common template to copy all name nodes and
their
> atomicvalues to the output tree, but that would copy all attributes from
the
> source in the output, which I do not want e.g. the above snippet
excludes
> attribute with name BILL_TO_ADDRESS3 that is present in the source xml.
>
> Also you will see that I need only the atomicvalues in the output xml.
I will see that? I don't recall seeing what the desired output XML was.
In all your posts in this thread, you have not stated what you're trying
to produce. It is very hard for anyone to help you under these
circumstances.
Sorry, I assumed that the xsl sheet was explanatory. The output desired is:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Order>
<Order>
<Info>
<BILL_TO_ADDRESS2>PO BOX 1234</BILL_TO_ADDRESS2>
<PO_NUMBER>123456</PO_NUMBER>
</Info>
</Order>
> So
> the way the logic gets to them is through the name nodes i.e.
xsl:value-of
> select "the atomicvalue for the node whose name is 'BILL_TO_ADDRESS2'".
It
> seems that the logic is failing as the processor finds that the values
of
> the name nodes are '<newline>BILL_TO_ADDRESS2' which hence does not
match.
>
> How can I achieve these objectives by using templates?
Thanks,
Vish.
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list