Luke,
At 10:04 AM 9/16/2004, you wrote:
okay, the expression I'm using is:
<xsl:template match="//*[starts-with(name(), 'SEG')]/NAME">
<xsl:value-of select="."/><xsl:text>*</xsl:text>
</xsl:template>
I'm thinking that this should return me the text of the 'NAME' child of
all of the elements that start with 'SEG' correct?
Correct, assuming this template ever gets matched. Which it will by
default, but without seeing the rest of the stylesheet we can't know for sure.
but I have this as my XML...
<X12_810Transaction xmlns="http://red-man.com/namespace"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://red-man.com/namespace
J:/XML/schemas/x12_810Transaction.xsd">
... ah, you have a namespace declared....
Make the red-man.com namespace explicit in your stylesheet (no, you don't
have to change the source), and your template, with a little tweaking, will
match:
<xsl:stylesheet xmlns:rm="http://red-man.com/namespace" .... >
and then
<xsl:template match="*[starts-with(local-name(), 'SEG')]/rm:NAME">
<xsl:value-of select="."/><xsl:text>*</xsl:text>
</xsl:template>
what I did:
* removed unhelpful "//" from match expression
* changed name() to local-name() so we don't have to worry about the
namespace prefix being there (or not)
* added the namespace prefix to rm:NAME so it would match a NAME element in
the rm namespace
Now, assuming your stylesheet allows the nodes of interest to be selected,
they will match.
I hope this helps,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================