Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

copy nodes using copy-of

 
Kuan Fan
Ranch Hand
Posts: 48
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Source xml file:
<AAA>
<BBB ooo="555" ppp="666">
<DDD>d1 </DDD>
<DDD>d2 </DDD>
</BBB>
</AAA>
xslt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl utput method = "xml" indent = "yes" />
<xsl:template match = "/" >
<QQQ >
<xsl:copy-of select = "AAA/BBB" />
</QQQ>
</xsl:template>
</xsl:stylesheet>
So far there is no problem. But if I add the namespace to the root element like below:
<AAA xmlns="http://mupc/xml/namespaces/geo" >
<BBB ooo="555" ppp="666">
<DDD>d1 </DDD>
<DDD>d2 </DDD>
</BBB>
</AAA>
The output file is only:
<QQQ/>
Anyone can help? Thanks.
 
Mapraputa Is
Leverager of our synergies
Sheriff
Posts: 10065
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If your elements got namespaced you need to address them with the same namespace in your XSLT. So you need to add namespace declaration:
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0"
xmlns:aaa = "http://mupc/xml/namespaces/geo">
and then use "aaa" prefix to address elements:
<xsl:copy-of select = "aaa:AAA/aaa:BBB" />
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic