xsl-list
[Top] [All Lists]

RE: element with namespace

2002-09-30 12:58:56
To match an element

<x xmlns="default.namespace.uri"/>

use:

<xsl:zzzzz select="prefix:x" xmlns:prefix="default.namespace.uri"/>

You need to match both the namespace and the local name, and the only
way to match a namespaced element in XPath is with a QName that has an
explicit prefix.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Venkateshwar Bommineni
Sent: 30 September 2002 16:39
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] element with namespace


Hi all,
 I am having a problem while trying to match root element 
which has namespace declaration.  here is the test snippet i 
am trying ..


Input XML is:
-------------------------------------------------------
<?xml version="1.0"?>
<Test xmlns="http://www.foo.com/namespace/v1";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://www.foo.com/namespace/v1
C:\schema\definition.xsd">
      <People>
              <Person>
                      <FName>fname1</FName>
                      <LName>lname1</LName>
              </Person>
              <Person>
                      <FName>fname3</FName>
                      <LName>lname3</LName>
              </Person>
      </People>
</Test>



Input XSL is:
---------------------------------------------------------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:template match="/">
      <Members>
              <xsl:apply-templates select="Test/People"/>
      </Members>
</xsl:template>

<xsl:template match="People">
      <xsl:for-each select="Person">
              <Member><xsl:value-of 
select="concat(substring(LName,1,1),'.',FName)"/></Member>
      </xsl:for-each>
</xsl:template>
</xsl:stylesheet>


Output of above transformation results:
---------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<Members/>


And if remove the namespace declaration from my input xml it 
works fine.

So is that namespace declaration not allowed or is there any 
magic property i need to set in XSL to ignore namespace declarations?

thanks in advance
Venkat




 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>