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(_at_)truevine(_dot_)net>:
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()<=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
--~------------------------------------------------------------------
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>
--~--
Alice Wei
MIS 2008
School of Library and Information Science
Indiana University Bloomington
ajwei(_at_)indiana(_dot_)edu
--~------------------------------------------------------------------
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>
--~--