Reputation: 740
I know the Title may be hard to understand. I will list the XML and the XSLT and hopefully it will be more clear.
<?xml version="1.0"?>
<software_inventory>
<software xmlns:xsi="Software.xsd">
<title>Adobe Photoshop</title>
<vendor>Adobe</vendor>
<category>Graphics</category>
<support_platforms>
<Platform>Windows 7</Platform>
<Platform>Windows 8</Platform>
<Platform>Windows 8.1</Platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="4GB Ram 2GB Hard Drive" Software_Requiremnts="32/64 bit" Price="399">CS 5.5</Version>
</Approved_Versions>
</software>
<software>
<title>Winzip</title>
<vendor>Winzip International</vendor>
<category>Utility</category>
<support_platforms>
<platform>Windows Vista</platform>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="2GB Ram 250MB Hard Drive" Software_Requiremnts="32/64 bit" Price="29.99">19</Version>
</Approved_Versions>
</software>
<software>
<title>Office 365</title>
<vendor>Microsoft</vendor>
<category>Productivity</category>
<support_platforms>
<platform>Windows Vista</platform>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="4GB Ram 2GB Hard Drive" Software_Requiremnts="32/64 bit" Price="99">Office 365</Version>
</Approved_Versions>
</software>
<software>
<title>Visual Studio</title>
<vendor>Microsoft</vendor>
<category>Development</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="4GB Ram 2GB Hard Drive" Software_Requiremnts="32/64 bit" Price="1199">2013</Version>
</Approved_Versions>
</software>
<software>
<title>Google Chrome</title>
<vendor>Google</vendor>
<category>Productivity</category>
<support_platforms>
<platforms>Windows Vista</platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="1GB Ram 250MB Hard Drive" Software_Requiremnts="32/64 bit" Price="0">23</Version>
</Approved_Versions>
</software>
<software>
<title>Microsoft SQL Server 2012</title>
<vendor>Microsoft</vendor>
<category>DBMS</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
<platform>Windows Server 2012</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="4GB Ram 4GB Hard Drive" Software_Requiremnts="64 bit" Price="3990">2012</Version>
</Approved_Versions>
</software>
<software>
<title>Microsoft Paint</title>
<vendor>Microsoft</vendor>
<category>Graphics</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
<platform>Linux</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="16GB Ram 1TB Hard Drive" Software_Requiremnts="32/64 bit" Price="1000000">22</Version>
</Approved_Versions>
</software>
<software>
<title>Notepad</title>
<vendor>Microsoft</vendor>
<category>Development</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="32GB Ram 500MB Hard Drive" Software_Requiremnts="32/64 bit" Price="500000">3</Version>
</Approved_Versions>
</software>
<software>
<title>Oracle Database</title>
<vendor>Oracle</vendor>
<category>DBMS</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
<platform>Windows Server 2012</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="8GB Ram 4GB Hard Drive" Software_Requiremnts="64 bit" Price="4000">Enterprise Edition</Version>
<Version Hardware_Requirements="8GB Ram 3GB Hard Drive" Software_Requiremnts="64 bit" Price="3000">Standard Edition</Version>
</Approved_Versions>
</software>
<software>
<title>Adobe Dreamweaver</title>
<vendor>Adobe</vendor>
<category>Development</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="2GB Ram 500MB Hard Drive" Software_Requiremnts="32/64 bit" Price="299">CS5</Version>
</Approved_Versions>
</software>
<software>
<title>Adobe Fireworks</title>
<vendor>Adobe</vendor>
<category>Graphics</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="2GB Ram 500MB Hard Drive" Software_Requiremnts="32/64 bit" Price="399">CS5</Version>
</Approved_Versions>
</software>
<software>
<title>Adobe Flash</title>
<vendor>Adobe</vendor>
<category>Development</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="4GB Ram 1GB Hard Drive" Software_Requiremnts="32/64 bit" Price="499">CS5</Version>
</Approved_Versions>
</software>
<software>
<title>Adobe Illustrator</title>
<vendor>Adobe</vendor>
<category>Development</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="4GB Ram 500MB Hard Drive" Software_Requiremnts="32/64 bit" Price="499">CS5</Version>
</Approved_Versions>
</software>
<software>
<title>Google Earth Pro</title>
<vendor>Google</vendor>
<category>Productivity</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="4GB Ram 500MB Hard Drive" Software_Requiremnts="32/64 bit" Price="999">14</Version>
</Approved_Versions>
</software>
<software>
<title>Eclipse</title>
<vendor>The Eclipse Foundation</vendor>
<category>Development</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="4GB Ram 500MB Hard Drive" Software_Requiremnts="32/64 bit" Price="0">12</Version>
</Approved_Versions>
</software>
<software>
<title>Candy Crush Saga</title>
<vendor>King.com ltd.</vendor>
<category>Productivity</category>
<support_platforms>
<platform>Windows 7</platform>
<platform>Windows 8</platform>
<platform>Windows 8.1</platform>
</support_platforms>
<Approved_Versions>
<Version Hardware_Requirements="32GB Ram 500GB Hard Drive" Software_Requiremnts="32/64 bit" Price="2000000">99</Version>
</Approved_Versions>
</software>
</software_inventory>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="html"/>
<xsl:template match="/" >
<html>
<head>
<title>Software</title>
</head>
<body>
<h1>Software Titles for each category, sorted by price</h1>
<table border="1">
<tr>
<th>Software Title</th>
<th>Category</th>
<th>Price</th>
</tr>
<xsl:for-each select="software_inventory/software">
<xsl:sort select="category"/>
<xsl:sort select="Approved_Versions/Version/@Price" data-type="number"/>
<tr>
<td>
<xsl:value-of select="title"/>
</td>
<td>
<xsl:value-of select="category"/>
</td>
<td>$
<xsl:value-of select="Approved_Versions/Version/@Price"/>
</td>
</tr>
</xsl:for-each>
</table>
<h1>Software Titles for each operating system, sorted by category</h1>
<table border="1">
<tr>
<th>Software Title</th>
<th>Operating System</th>
<th>Category</th>
</tr>
<xsl:for-each select="software_inventory/software">
<xsl:sort select="category"/>
<tr>
<td>
<xsl:value-of select="title"/>
</td>
<td>
<xsl:for-each select="support_platforms/platform">
<xsl:value-of select="."/>,
<xsl:text>

</xsl:text>
</xsl:for-each>
</td>
<td>
<xsl:value-of select="category"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Please take a look at the picture. You will see that the platforms are never added to the operating system cell for Adobe Photoshop. It just so happens that Adobe Photoshop is at the top of the list under the software_inventory node. I do not know if that is the reason or not. I tried stepping through the code and it just never selects the platforms for Adobe Photoshop. Does anyone see why this might be happening? What Can I do to fix it?
Thanks, David
Upvotes: 0
Views: 54
Reputation: 21004
This is because for Adobe Photoshop the elements are
<Platform></Platform>
while you check for platform
. This is case sensitive, use
<platform>Windows 7</platform>
instead.
Upvotes: 1