I'm rather new to XSL, and was hoping that someone could help me
with the following problem:
I have an XML file that describes various items for a computer store, things
like hard drives, optical drives, network cards, etc. Each item has the
same attribute list, and are grouped under elements such as <hard_disk>,
<video_card>, etc. But in some instances, I have further sub-categorized
items under their respective manufacturer, if a given company makes more
than one item. For example, for video cards, let's say I have brand_s and
brand_t. Brand_s only makes one type of video card, so I put that directly
under the <video_card> element. But brand_t makes two types of video cards,
so I create a new element called <brand_t_vid_card> and below that I have
both of the video cards made by brand_t, such as <video_card_type_1> and
<video_card_type_2>. Now, I want to use an XSL to translate this XML file
into one large HTML file, listing all of the different components, but I run
into a problem when I use a simple <xsl:for-each select="component/*/*/*">
statement, since this will only traverse down 3 levels from the <component>
element, but in some cases (as noted above), I'll need to traverse further
down to the next element. I'm sure there is an easy way to do this, but I
have only limited knowledge of XSL, and I would rather not have to
restructure the entire XML file so that it works with my single for-each
statement. If anyone can make sense of what I'm talking about, I would
greatly appreciate an answer. Below is an example of my XML file to further
make my question more clear. Thanks in advance!
Adam Cohen
<component>
<device>
<hard_disk>
<brand_x_hard_disk manufacturer="x">
<image>blah</image>
<description>
information about brand x hard disk
</description>
</brand_x_hard_disk>
<brand_y_hard_disk manufacturer="y">
<image>blah</image>
<description>
information about brand y hard disk
</description>
</brand_y_hard_disk>
</hard_disk>
</device>
<card>
<video_card>
<brand_s_vid_card manufacturer="s">
<image>blah</image>
<description>
information about brand s video card
</description>
</brand_s_vid_card>
<brand_t_vid_card>
<video_card_type_1 manufacturer="t">
<image>blah</image>
<description>
information about brand s video card
</description>
</video_card_type_1>
<video_card_type_2 manufacturer="t">
<image>blah</image>
<description>
information about brand s video card
</description>
</video_card_type_2>
</brand_t_vid_card>
</video_card>
</card>
</component>
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list