RE: [xsl] Attribute Name to Elements Problems

Subject: RE: [xsl] Attribute Name to Elements Problems
From: "Joe Heidenreich" <HeidenreichJ@xxxxxxxx>
Date: Wed, 20 Jul 2005 16:58:12 -0400
It might be a case-sensitive issue. Have you tried <xsl:element
name="{@type}">

-----Original Message-----
From: Benjamin Richard Woline [mailto:valjean@xxxxxxxxxxx]
Sent: Wednesday, July 20, 2005 4:53 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] Attribute Name to Elements Problems

Now that I have my XML sorted (Thanks to DavidC) I can't seem to get the
structure to reform itself based on an attribute name.

My XML now looks like:

<Entry>
<Entry name="H" type="System" importance="1">
  <Entry name="I" type="Category" importance="1">
    <Entry name="J" type="Item" importance="1"></Entry>
    <Entry name="K" type="Item" importance="2"></Entry>
  </Entry>
  <Entry name="L" type="Category" importance="2">
    <Entry name="N" type="Item" importance="1"></Entry>
    <Entry name="M" type="Item" importance="2"></Entry>
  </Entry>
</Entry>
<Entry name="A" type="System" importance="2">
  <Entry name="E" type="Category" importance="1">
    <Entry name="G" type="Item" importance="1"></Entry>
    <Entry name="F" type="Item" importance="2"></Entry>
  </Entry>
  <Entry name="B" type="Category" importance="2">
    <Entry name="C" type="Item" importance="1"></Entry>
    <Entry name="D" type="Item" importance="2"></Entry>
  </Entry>
</Entry>
</Entry>

I want to reform it by "type" with some new elements created so that the
XML looks like:

<Entry>
<System type="System" importance="1"><name>H</name>
  <Category type="Category" importance="1"><name>I</name>
    <Item type="Item" importance="1"><name>J</name></Item>
    <Item type="Item" importance="2"><name>K</name></Item>
  </Category>
  <Category type="Category" importance="2"><name>L</name>
    <Item type="Item" importance="1"><name>N</name></Item>
    <Item type="Item" importance="2"><name>M</name></Item>
  </Category>
</System>
<System type="System" importance="2"><name>A</name>
  <Category type="Category" importance="1"><name>E</name>
    <Item type="Item" importance="1"><name>G</name></Item>
    <Item type="Item" importance="2"><name>F</name></Item>
  </Category>
  <Category type="Category" importance="2"><name>B</name>
    <Item type="Item" importance="1"><name>C</name></Entry>
    <Item type="Item" importance="2"><name>D</name></Entry>
  </Category>
</System>
</Entry>


When I try something with <xsl:element name="{@Type}"> I get not valid
type not a QName, so something is very wrong.  There are several
attributes other than name that I want to pull out into elements so
hopefully there is a "generic"
solution.  Hope someone can help.

Ben Woline

Current Thread