Re: [xsl] Re: generate full xpath name to an attribute?

Subject: Re: [xsl] Re: generate full xpath name to an attribute?
From: Ray Tayek <rtayek@xxxxxxxxx>
Date: Mon, 31 Mar 2003 15:23:28 -0800
At 09:32 PM 3/31/03 +0200, you wrote:
Do have a look here:

http://www.topxml.com/code/default.asp?p=3&id=v20010323001030

This code generates a Xpath expression that uniquely selects any (type of)
node -- even for a namespace node.

this example requires a bunch of m$ stuff. i will try to avoid that.


i saw something similar in the archives, but it was even scarier. see: http://www.biglist.com/lists/xsl-list/archives/199910/msg00432.html - this eats my file and tells me what everything is (i think). i have the files at http://tayek.com/~ray/xml/ - xpath2output.html was made by applying input.xsl to input.xsl using xmlspy.


Of course, Mike is right that if element names belong to a non-null
namespace, the environment to evaluate the expression must have exactly the
same namespaces defined...


===== Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL

i'm sure that he is correct and that is something else i will need to deal with.


anyway this will tell me whether it is an attribute or not, so perhaps my script:


<xsl:template match="name"> <xsl:for-each select="ancestor-of-self::*"> <xsl:value-of select="name()" /><xsl:text>/</xsl:text> </xsl:for-each> <xsl:value-of select="." /> </xsl:template>

with an appropriate test for an attribute can be made to work.

do you think yours will work without the m$ junk? if so, i will give it a try (but i am a newbie to xsl). if not, i may have to try the m$ (yuck) thingie.

thamks

"Ray Tayek" <rtayek@xxxxxxxxx> wrote in message
news:5.2.0.9.2.20030331031515.02681810@xxxxxxxxxxxxxxxxx
> hi, i need to generate the full xpath name (location) for attributes in
the
> following xsl (see below).
>
> instead of using <xsl:attribute name="name"><xsl:value-of
> select="name()"/></xsl:attribute> which gets me the just the attribute
> (field) name, i would like to generate the full xpath expression from the
> root of the document (i guess it would look something like:
> /......./Node/SingleForces@attribute_name). i.e. what do i use in instead
> of: <xsl:value-of select="name()"/> to get the fully qualified name for
> this field from the root.
>
> thanks
>
> <xsl:template match="Node/SingleForces">
>          <td>
>                  <xsl:for-each select="@*">
>                          <xsl:element name="label">
>                                  <xsl:attribute name="for"><xsl:value-of
> select="name()"/></xsl:attribute>
>                                  <xsl:value-of select="name()"/>
>                          </xsl:element>
>                          <xsl:element name="input">
>                                  <xsl:attribute
> name="type">text</xsl:attribute>
>                                  <xsl:attribute
name="size">4</xsl:attribute>
>                                  <xsl:attribute name="id"><xsl:value-of
> select="name()"/></xsl:attribute>
>                                  <xsl:attribute name="name"><xsl:value-of
> select="name()"/></xsl:attribute>
>                                  <xsl:attribute name="value"><xsl:value-of
> select="."/></xsl:attribute>
>                          </xsl:element>
>                  </xsl:for-each>
>          </td>
>          <xsl:apply-templates/>
> </xsl:template> ...

--- ray tayek http://tayek.com/ actively seeking mentoring or telecommuting work vice chair orange county java users group http://www.ocjug.org/ hate spam? http://samspade.org/ssw/


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread