xsl-list
[Top] [All Lists]

Re: Validating uniqueness in a XML file using XSLT

2003-09-02 21:45:35
Use something like this:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output omit-xml-declaration="yes" indent="yes"/>

  <xsl:key name="kattName" match="@name" use="."/>

  <xsl:template match="/">
    <xsl:for-each select="//*[key('kattName', @name)[2]]">
      <xsl:copy>
        <xsl:copy-of select="@*"/>
      </xsl:copy>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

When this transformation is applied on this source.xml:

<M name="a">
  <N> </N>
  <M name="b">
    <N name="a"> 12</N>
    <MM name="c"/>
  </M>
</M>

it produces all elements having "name" attributes with non-unique value:

<M name="a" />
<N name="a" />


=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL
"Dongling Ding" <dling61(_at_)yahoo(_dot_)com> wrote in message
news:20030903001436(_dot_)28538(_dot_)qmail(_at_)web13902(_dot_)mail(_dot_)yahoo(_dot_)com(_dot_)(_dot_)(_dot_)

Hi,

I want to XSLT to validate the uniqueness for the name
attribute in an XML file. The result will print out
any elements with the duplicated name attributes.

Basically, XSLT needs to look at all the elements with
name attribute and check the uniqueness for its value.

Is there a good way to do that in XSLT?

Thank for any input/comment.


Dongling


Here is the sample XML

<M name="a">
  <N></N>
  <M name="b">
    <N>12<N>
    <MM name="c"/>
  </M>
</M>



__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.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



<Prev in Thread] Current Thread [Next in Thread>