[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Copy Child Elements

Subject: Re: Copy Child Elements
From: Alice Wei <ajwei@xxxxxxxxxxx>
Date: Fri, 25 Jan 2008 22:02:33 -0500
Re:  Copy Child Elements
Hi,

There is one obvious problem with your XSL here:

If you are using apply-templates, what it does is that it would select any of the children of the template root. Use <xsl:apply-templates select="section"> and and <xsl:apply-templates select="//section">

I am sure the others on the list would be able to help you with some of the other mistakes.

Good luck.

Alice


Quoting Rick Quatro <frameexpert@xxxxxxxxxxxx>:


Hello,

Here is my input XML:

<?xml version="1.0" encoding="utf-8"?>
<reference>
 <refbody>
   <section>
     <title>Author Job Title</title>
     <p id="Field_ShowAuthorJobTitle">Author Job Title</p>
     <p id="Desc_ShowAuthorJobTitle">Setting that indicates...</p>
     <p id="AppTo_ShowAuthorJobTitle">Review Definitions, Section Item</p>
     <p id="Hdr_ShowAuthorJobTitle">Author Settings</p>
   </section>
   <section>
     <title>Type (of definition)</title>
     <p id="Field_Typeofdefinition">Type (of definition)</p>
     <p id="Desc_Typeofdefinition">Type of the performance...
       <ul>
         <li>
           <p><b>Focal</b>- A focal review is the most typical type...</p>
         </li>
       </ul></p>
     <p id="AppTo_Typeofdefinition">Review Definitions, Section Item,
Performance Review</p>
     <p id="Hdr_Typeofdefinition">Properties</p>
   </section>
 </refbody>
</reference>

Here is my desired output, except for the problem described below the output.

<?xml version="1.0"?>
<definitions>
 <dt>Author Job Title</dt>
 <dl>Setting that indicates...</dl>
 <dt>Type (of definition)</dt>
 <dl>Type of the performance... Focal- A focal review is the most
typical type...</dl>
</definitions>

For the <dt> and <dl> elements, I want to include any contents from
the original content; for example the <ul> element in the second
<section> element, etc.

Here is my stylesheet:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" />
 <xsl:template match="/">
   <definitions>
     <xsl:apply-templates />
   </definitions>
 </xsl:template>

 <xsl:template match="reference">
   <xsl:apply-templates select="//section">
     <xsl:sort select="title" />
   </xsl:apply-templates>
 </xsl:template>

 <xsl:template match="section">
   <xsl:for-each select="p[position()&lt;=2]">
     <xsl:if test="position()=1">
       <dt>
         <xsl:apply-templates />
       </dt>
     </xsl:if>
     <xsl:if test="position()=2">
       <dl>
         <xsl:apply-templates />
       </dl>
     </xsl:if>
   </xsl:for-each>
 </xsl:template>

</xsl:stylesheet>

Any help is appreciated.

Rick Quatro
Carmen Publishing
585-659-8267
www.frameexpert.com





Alice Wei MIS 2008 School of Library and Information Science Indiana University Bloomington ajwei@xxxxxxxxxxx

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Cast Your Vote

We need your help – Vote for DataDirect XML Products!

  • Best SOA or XML site

Winners and finalists announced at SOA World Conference in November.

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.