Solved

Move child nodes values to attributes

Posted on 2008-10-02
1
248 Views
Last Modified: 2013-11-18
Hi experts,

I have the following xml file:
--------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<RootCircle  version="1.0">
  <Square  size = "m">
    <myExtension name = "angle" value = "4" />
    <Triangle color="red" size="big" />
    <Triangle  />
  </Square>
</RootCircle>
----------------------------------------
I want the output to be:

<?xml version="1.0" encoding="UTF-8"?>
<RootCircle  version="1.0">
  <Square  size = "m"  angle = "4">
    <Triangle color="red" size="big" />
    <Triangle  />
  </Square>
</RootCircle>

------------------------------
How do I do this? Thanks a lot!

0
Comment
Question by:meow00
1 Comment
 
LVL 18

Accepted Solution

by:
zc2 earned 350 total points
ID: 22629850
the xsl below replaces each myExtension element to the corresponding attribute of its parent
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
	<xsl:template match="myExtension">
		<xsl:attribute name="{@name}"><xsl:value-of select="@value"/></xsl:attribute>
	</xsl:template>
 
	<xsl:template match="*[myExtension]">
	  <xsl:copy>
	    <xsl:apply-templates select="@*"/>
		<xsl:apply-templates select="myExtension"/>
		<xsl:apply-templates select="*[name()!='myExtension']"/>
	  </xsl:copy>
	</xsl:template>
	
	<xsl:template match="*">
		<xsl:copy>
			<xsl:apply-templates select="@*|*|text()"/>
		</xsl:copy>
 	</xsl:template>
	
	<xsl:template match="@*|text()">
		<xsl:copy/>
 	</xsl:template>
	
</xsl:stylesheet>

Open in new window

0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Auto Complete Using JQuery 5 80
Adjust the position 3 60
Questions about this React unit test 4 61
The Best Website Creation Tools 14 54
Preface This is the third article about the EE Collaborative Login Project. A Better Website Login System (http://www.experts-exchange.com/A_2902.html) introduces the Login System and shows how to implement a login page. The EE Collaborative Logi…
Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question