Subject: SV: XML Question
From: "Per Osnes" <per.osnes@xxxxxx>
Date: Wed, 4 Oct 2006 13:18:13 +0200
|
Hi folks,
This template gives the required output (in Altova).
<xsl:template match="//*[not(*)]">
<xsl:variable name="path">
<xsl:for-each select="ancestor::*"><xsl:value-of
select="name()"/>/</xsl:for-each>
<xsl:value-of select="name()"/>
</xsl:variable>
<xsl:text>
</xsl:text>
<xsl:value-of select="$path"/>
<xsl:value-of select="' ===> '"/>
<xsl:value-of select="text()"/>
</xsl:template>
Actually I wanted to replace the "for each" by something like
<xsl:value-of select="string-join(((name(ancestor::*)), name()), '/')"/>
but Altova gives error message "too many items"...
I have used this method earlier for producing the full path for elements in
an XML schema:
select="string-join((ancestor::xs:element/@name, ./@name), '.')"
Any comments from the experts?
- Per Osnes.
----- LINKE Markus <markus.linke@xxxxxxxx> wrote:
> Hi,
>
> I am not sure if this is the right list for such a question, but lets
> try :)
>
> I would like to create a list of xpaths via xsl from a given
> xml-structure like this:
>
> <a>
> <b>
> <c>
> content
> </c>
> <d>
> morecontent
> </d>
> </b>
> </a>
>
> it should show the full xpath like
>
> a/b/c ====> content
> a/b/d ====> morecontent
>
> and not just
>
> c => content
> d => morecontent
>
> Ideas anyone? I am looking for either a script or some xsl ...
>
> Cheers,
> Markus
| Current Thread |
|
Per Osnes - 4 Oct 2006 11:18:56 -0000 <=
|
|