[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] How can I placed end tags?


Subject: RE: [xsl] How can I placed end tags?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 12 Aug 2005 09:21:57 +0100

Firstly, you don't create tags in XSLT, you create element nodes in a tree.
This is a very important distinction.

If you don't know the name of the element you want to create at compile
time, use xsl:element: for example

<xsl:element name="{@text:name}">
  . . .
</xsl:element> 

Your data is extremely peculiar, because it has things like "ce:author" and
"/ce:author" as the values of attribute nodes, in other words it contains
markup within the data. You may therefore be better off generating text
output rather than XML output, something like this:

<xsl:output method="text">
<xsl:template match="text:user-field-get">
  &lt;<xsl:value-of select="."/>&gt;
</xsl:template>

However, I would go back to the application architecture. Why is anyone
generating this weird XML in the first place?

Michael Kay
http://www.saxonica.com/


> -----Original Message-----
> From: aaron apigo [mailto:aaronjose_apigo2001@xxxxxxxxx] 
> Sent: 12 August 2005 07:29
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] How can I placed end tags?
> 
> Hi All,
> 
> Can anyone help me to transform this XML,
> 
> <text:p>
> <text:user-field-get
> text:name="ce:author">au</text:user-field-get>
> <text:span>
> <text:user-field-get
> text:name="ce:given-name">fnm</text:user-field-get>
> </text:span>
> <text:span>Jun</text:span>
> <text:span>
> <text:user-field-get
> text:name="ce:surname">snm</text:user-field-get>
> </text:span>
> <text:span>Wang
> </text:span>
> <text:span>
> <text:user-field-get
> text:name="ce:e-address">ead</text:user-field-get>
> </text:span>
> <text:span>jwang@xxxxxxxx</text:span>
> <text:span>
> <text:user-field-get
> text:name="/ce:e-address">/ead</text:user-field-get>
> </text:span>
> <text:user-field-get
> text:name="/ce:author">/au</text:user-field-get>
> </text:p>
> 
> to
> 
> <ce:author>
> <ce:given-name>Jun</ce:given-name>
> <ce:surname>Wang</ce:surname>
> <ce:e-address>jwang@xxxxxxxx</ce:e-address>
> </ce:author>
> 
> is it possible?
> 
> well as you can see, I used the attribute of
> <text:user-field-get text:name="____"> as the name of
> my tags. In my XSLT, I cannot get the data e.g., 
> 
> <ce:author>
> <ce:given-name>
> <ce:surname>
> <ce:e-address></ce:e-address>
> 
> and since I cannot get the data, I cannot also
> generate the end tags.
> 
> Please help.
> 
> regards.
> 
> aaron
> 
> 
> 
> 
> 		
> ____________________________________________________
> Start your day with Yahoo! - make it your home page 
> http://www.yahoo.com/r/hs 


Current Thread
Keywords