html - XSLT stylesheet not showing values -
i trying transform xml source html page using xslt stylesheet.
the xml code here:
<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="p_44.xsl"?> <journaldata> <patientdata><patient><name>jones, john</name> <codenumber>191212121212</codenumber> <codenumbertype>c</codenumbertype> <birthdate>1912-12-12</birthdate> <sex>f</sex> <deceased>0</deceased> <doublereg>0</doublereg> <interpreterneeded>0</interpreterneeded> </patient> </patientdata> </journaldata> the xslt stylesheet here:
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <html> <body> <h1>journal</h1> <table border="1"> <tr bgcolor="#9acd32"> <th>element name</th> <th>contence</th> </tr> <tr bgcolor="#fbf5a4"> <th>patient</th> </tr> <xsl:for-each select="journaldata/patientdata/patient/name"> <tr> <td><xsl:value-of select="local-name()" /></td> <td><xsl:value-of select="name" /></td> </tr> </xsl:for-each> <xsl:for-each select="journaldata/patientdata/patient/codenumber"> <tr> <td><xsl:value-of select="local-name()" /></td> <td><xsl:value-of select="codenumber" /></td> </tr> </xsl:for-each> <xsl:for-each select="journaldata/patientdata/patient/codenumbertype"> <tr> <td><xsl:value-of select="local-name()" /></td> <td><xsl:value-of select="codenumbertype" /></td> </tr> </xsl:for-each> <xsl:for-each select="journaldata/patientdata/patient/birthdate"> <tr> <td><xsl:value-of select="local-name()" /></td> <td><xsl:value-of select="birthdate" /></td> </tr> </xsl:for-each> <xsl:for-each select="journaldata/patientdata/patient/sex"> <tr> <td><xsl:value-of select="local-name()" /></td> <td><xsl:value-of select="sex" /></td> </tr> </xsl:for-each> <xsl:for-each select="journaldata/patientdata/patient/deceased"> <tr> <td><xsl:value-of select="local-name()" /></td> <td><xsl:value-of select="deceased" /></td> </tr> </xsl:for-each> <xsl:for-each select="journaldata/patientdata/patient/doublereg"> <tr> <td><xsl:value-of select="local-name()" /></td> <td><xsl:value-of select="doublereg" /></td> </tr> </xsl:for-each> <xsl:for-each select="journaldata/patientdata/patient/interpreterneeded"> <tr> <td><xsl:value-of select="local-name()" /></td> <td><xsl:value-of select="interpreterneeded" /></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> this transform nice 2 column html table first 1 has element name printed out, second column blank. why aren't values displayed? wrong in stylesheet?
thank both of you. got working now. columns continue downwards new title on yellow background (just "patient") called "patientaddress". 1 step further nesting:
becomes
it works fine 1 annoying detail. since element name "patientadress" child under "patient" becomes double printed. first when children (is right terminology?) under "patient" printed values under "patientadress" comes in 1 line, , again when set
how rid of first instance? looking this:
patientaddress bondstreet 9 211 11 mersey surrey 12 surrey 72
should this:
<tr bgcolor="#fbf5a4"><th>patientaddress</th></tr><tr><td>address1</td> <td>bondstreet 9</td></tr><tr><td>zipcode</td><td>211 11</td></tr><tr><td>city</td><td>mersey</td></tr><tr><td>state</td><td>surrey</td></tr><tr><td>statecode</td><td>12</td></tr><tr><td>district</td><td>surrey</td></tr><tr><td>districtcode</td><td>72</td></tr></tbody></table></body></html> (trying paste nice looking table, not succeeding....:-()
inside of for-each need use <xsl:value-of select="."/> output string value of context node. if use <xsl:value-of select="foo"/> child element of name of context node.
Comments
Post a Comment