|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Adding Missing Elements
Hi,
Tempore 18:01:35, die 09/13/2005 AD, hinc in xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Emerson, Matt <Matt.Emerson@xxxxxxx>: "The best way to do this" does not exist, it's amatter of personal personal style.Given these possible variations and based on some processing elsewhere in the document, I would like to make sure that <node> always has <item>B</item> in its list...possibly adding <list> if it is not present. Here's a solution that I perceive as most elegant: <xsl:stylesheet version="1.0" xmlns:var="myvar" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <var:root> <list> <item>B</item> </list> </var:root> <xsl:variable name="var" select="document('')/xsl:stylesheet/var:root/*"/> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*" /> </xsl:copy> </xsl:template> <xsl:template match="node|list|item">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="
$var[current()/self::node][not(current()/list)]|
$var[current()/self::list]/item[not(.=current()/item)]|
node()" />
</xsl:element>
</xsl:template></xsl:stylesheet> regards, -- Joris Gillis (http://users.telenet.be/root-jg/me.html) B+Et ipsa scientia potestas estB; - Francis Bacon , Meditationes sacrae
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








