This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Is there a way in xsl to point to a node if only a part of its name is known?


> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]