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

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -