xsl-list
[Top] [All Lists]

Re: Re: generate full xpath name to an attribute?

2003-03-31 16:23:28
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(_at_)attbi(_dot_)com> wrote in message
news:5(_dot_)2(_dot_)0(_dot_)9(_dot_)2(_dot_)20030331031515(_dot_)02681810(_at_)mail(_dot_)attbi(_dot_)com(_dot_)(_dot_)(_dot_)
> 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(_at_)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