This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Is there a way in xsl to point to a node if only a part of its name is known?
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 22 Nov 2001 10:24:57 -0000
- Subject: RE: [xsl] Is there a way in xsl to point to a node if only a part of its name is known?
- Reply-to: xsl-list at lists dot mulberrytech dot com
> I'm trying to build a 'generic' xsl which will be able to
> style a certain
> type of xml I get back when querying a database. The xml structure/
> hierarchy always stays the same but unfortunately the text
> node 'naming'
> partly changes. A text node name consists of
> 'tablename.fieldname' where
> tablename is the changing- and fieldname the fixed part.
I'd say that's a lousy bit of XML design, but as stylesheet writers, we
sometimes have to cope with lousy XML.
Your only option is to use expressions (or patterns) like:
*[substring-before(name(), '.')='tableName1']
Alternatively (a generally useful tip when processing badly-designed XML),
do a two-phase transformation, the first phase being there purely to
sanitise the XML into something more reasonable. In this case (as in many
other cases) the first phase could be a simple SAX filter, replacing
<tablename1.fieldname1> by <field table="tablename1"
fieldname="fieldname1">.
Mike Kay
>
> Is there a way in xsl to point to a node if only a part of its name is
> known?
>
> Thanks,
> -Michael
>
>
> Sample xml 1:
> <node1>
> <node2>
> <node3>
> <tableName1.field1>content ...</tableName1.field1>
> <tableName1.field2>content ...</tableName1.field2>
> <tableName1.field3>content ...</tableName1.field3>
> </node3>
> </node2>
> </node1>
>
> Sample xml 2:
> <node1>
> <node2>
> <node3>
> <tableName2.field1>content ...</tableName2.field1>
> <tableName2.field2>content ...</tableName2.field2>
> </node3>
> </node2>
> </node1>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list