xtran-888
asked on
Using XSLT to convert XML to HTML
Hi,
Attached is the XML file: i'd like to use XSLT to group all info relating to a specific user eg. user1, and convert to HTML such as:
Name: 1
User 1 Code: 1111
Enable on partitions:
Partition 1
Partition 3
Partition 5
Privileges:
User 1 Supervisor
User 1 Bypass
User 1 Remote Access
__________________________ __
Name: 12
User 7 Code: 1212
Enable on partitions:
Partition 3
Privileges:
User 7 Bypass
__________________________ __
...
Customers.xml
Attached is the XML file: i'd like to use XSLT to group all info relating to a specific user eg. user1, and convert to HTML such as:
Name: 1
User 1 Code: 1111
Enable on partitions:
Partition 1
Partition 3
Partition 5
Privileges:
User 1 Supervisor
User 1 Bypass
User 1 Remote Access
__________________________
Name: 12
User 7 Code: 1212
Enable on partitions:
Partition 3
Privileges:
User 7 Bypass
__________________________
...
Customers.xml
ASKER
Hi,
Thanks for your help; but i could not run under VS2012 that
supports only XSLT 1.0. How can I get around this problem?
Regards,
XT
Thanks for your help; but i could not run under VS2012 that
supports only XSLT 1.0. How can I get around this problem?
Regards,
XT
ASKER
Hi,
Since i don't have XSLT2.0, i change my XML like:
<?xml version="1.0" encoding="utf-8"?>
<Users>
<User>
<Name>Panel User 1
<Phrase>User 1 Code</Phrase>
<Value>1111</Value>
<Phrase>User 1 Supervisor</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Bypass</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Remote Access</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Partition 1 Assignment</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Partition 3 Assignment</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Partition 5 Assignment</Phrase>
<Value>Yes</Value>
</Name>
</User>
<User>
<Name>Panel User 5
<Phrase>User 3 Code</Phrase>
<Value>5555</Value>
</Name>
</User>
<User>
<Name>Panel User 4
<Phrase>User 4 Code</Phrase>
<Value>4444</Value>
</Name>
</User>
<User>
<Name>Panel User 2
<Phrase>User 5 Code</Phrase>
<Value>2222</Value>
</Name>
</User>
<User>
<Name>Panel User 6
<Phrase>User 6 Code</Phrase>
<Value>6666</Value>
</Name>
</User>
<User>
<Name>Panel User 12
<Phrase>User 7 Code</Phrase>
<Value>1212</Value>
<Phrase>User 7 Bypass</Phrase>
<Value>Yes</Value>
<Phrase>User 7 Partition 3 Assignment</Phrase>
<Value>Yes</Value>
</Name>
</User>
<User>
<Name>Panel User 10
<Phrase>User 9 Code</Phrase>
<Value>1010</Value>
</Name>
</User>
<User>
<Name>40
<Phrase>Master Code</Phrase>
<Value>1234</Value>
</Name>
</User>
</Users>
========================== ========== ====
And my XSLT like:
<?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-m icrosoft-c om:xslt" exclude-result-prefixes="m sxsl"
>
<xsl:output method="html" indent="yes"/>
<xsl:template match="Users">
<html>
<body>
<xsl:for-each select="User">
<p>
<xsl:value-of select="Name"/>
</p>
<xsl:for-each select="Phrase">
<li>
<ul>
<xsl:value-of select="Phrase"/>
</ul>
<span>
<xsl:value-of select="Value"/>
</span>
</li>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
========================== ======
And my output like:
Panel User 1
Panel User 5
Panel User 4
Panel User 2
Panel User 6
Panel User 12
Panel User 10
could you help since all phrases and values are missing? I don't understand.
Thanks,
Regards,
XT
Since i don't have XSLT2.0, i change my XML like:
<?xml version="1.0" encoding="utf-8"?>
<Users>
<User>
<Name>Panel User 1
<Phrase>User 1 Code</Phrase>
<Value>1111</Value>
<Phrase>User 1 Supervisor</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Bypass</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Remote Access</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Partition 1 Assignment</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Partition 3 Assignment</Phrase>
<Value>Yes</Value>
<Phrase>User 1 Partition 5 Assignment</Phrase>
<Value>Yes</Value>
</Name>
</User>
<User>
<Name>Panel User 5
<Phrase>User 3 Code</Phrase>
<Value>5555</Value>
</Name>
</User>
<User>
<Name>Panel User 4
<Phrase>User 4 Code</Phrase>
<Value>4444</Value>
</Name>
</User>
<User>
<Name>Panel User 2
<Phrase>User 5 Code</Phrase>
<Value>2222</Value>
</Name>
</User>
<User>
<Name>Panel User 6
<Phrase>User 6 Code</Phrase>
<Value>6666</Value>
</Name>
</User>
<User>
<Name>Panel User 12
<Phrase>User 7 Code</Phrase>
<Value>1212</Value>
<Phrase>User 7 Bypass</Phrase>
<Value>Yes</Value>
<Phrase>User 7 Partition 3 Assignment</Phrase>
<Value>Yes</Value>
</Name>
</User>
<User>
<Name>Panel User 10
<Phrase>User 9 Code</Phrase>
<Value>1010</Value>
</Name>
</User>
<User>
<Name>40
<Phrase>Master Code</Phrase>
<Value>1234</Value>
</Name>
</User>
</Users>
==========================
And my XSLT like:
<?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-m
>
<xsl:output method="html" indent="yes"/>
<xsl:template match="Users">
<html>
<body>
<xsl:for-each select="User">
<p>
<xsl:value-of select="Name"/>
</p>
<xsl:for-each select="Phrase">
<li>
<ul>
<xsl:value-of select="Phrase"/>
</ul>
<span>
<xsl:value-of select="Value"/>
</span>
</li>
</xsl:for-each>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
==========================
And my output like:
Panel User 1
Panel User 5
Panel User 4
Panel User 2
Panel User 6
Panel User 12
Panel User 10
could you help since all phrases and values are missing? I don't understand.
Thanks,
Regards,
XT
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for your help.
Open in new window
A few notes...