Subject: RE: [xsl] yet another XPath question From: "Zarella Rendon" <zarella@xxxxxxxxxxxxx> Date: Mon, 3 Feb 2003 09:55:06 -0600 |
Hi Simon, You can work off the name element and use following-sibling to check for the existence of the address and add it if it's not there. This is not an "XPath" solution, but it will work. <xsl:param name="country">XLandia</xsl:param> <xsl:template match="/resume/header/name"> <xsl:copy-of select="."/> <xsl:if test="not(following-sibling::address)"> <address> <country> <xsl:value-of select="$country"/> </country> </address> </xsl:if> </xsl:template> Hope this helps. Zarella -------------- Zarella Rendon Principal Consultant XML-Factor Consulting Svcs. www.xml-factor.com zarella@xxxxxxxxxxxxxx > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of S Woodside > Sent: Tuesday, January 28, 2003 12:41 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] yet another XPath question > > > Seems like I'm trying to do "hard" things with Xpath these days. I wish > there were a dedicated XPath mailing list or FAQ ... or is it that I'm > the only one trying to use XPath in this way? > > I'm passing an XPath back from an HTML form as a parameter to an XSLT > stylesheet. I'm also passing a value to insert into that location, > using, XUpdate (specifically XML::XUpdate::LibXML in perl). I'd like to > then test the source document for the stylesheet, to see if that XPath > is valid. OK, that's easy, I just test="/Big/Long/XPath" but wait, if > it's /not/ present then I want to create sufficient nodes to insert the > new element in that place. That means I want to test each location step > in the XPath, one by one, from root to leaf, to see if it's there. If > it isn't, I then create a new node for that location step, and then > descend the rest of the XPath, creating nodes until I'm done and then I > insert the value. Here's an example of what I want to have happen: > > source XML docu: > > <resume> > <header> > <name> > <first>Simon</first> > </name> > </header> > </resume> > > params from HTML forms into XSLT: > XPath: /resume/header/address/country > Value: XLandia > > result XML docu: > > <resume> > <header> > <name> > <first>Simon</first> > </name> > <address> > <country> > XLandia > </country> > </address> > </header> > </resume> > > How do I do that? There doesn't seem to be any convenient way to break > apart and analyse xpath steps in the spec, and I /don't/ want to start > messing around with string conversions... > > simon > > --- > www.simonwoodside.com > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] yet another XPath questio, S Woodside | Thread | Re: [xsl] Xupdate (was: yet another, S Woodside |
Re: [xsl] N : M transformation, David Carlisle | Date | Re: [xsl] N : M transformation, Tobias Reif |
Month |