Я пытаюсь преобразовать источник XML в HTML-страницу с помощью таблицы стилей XSLT.Таблица стилей XSLT, не отображающая значения
код XML здесь:
<?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>
таблицы стилей XSLT здесь:
<?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>
Это преобразование к красивому два столбца HTML таблицы, где первый один имеет имя элемента распечатанный, но второй столбец пуст. Почему значения не отображаются? Что не так в таблице стилей?
Спасибо вам большое. Теперь я работаю. Теперь столбцы продолжаются вниз с новым заголовком на желтом фоне (так же, как «Пациент»), называемым «PatientAddress». Это один шаг вложенности:
становится
Это все прекрасно работает только для одной досадной детали. Поскольку имя элемента «PatientAdress» является дочерним по типу «Пациент», оно становится двойным. Во-первых, когда все дети (это правильная терминология?) В разделе «Пациент» печатаются, все значения под «PatientAdress» входят в одну строку, а затем снова, когда я устанавливаю
Как избавиться от первого экземпляра? Глядя, как это:
PatientAddress Bondstreet 9 211 11 Мерси Суррей 12 Surrey 72
Если только выглядеть следующим образом:
<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>
(Попытка вставить симпатичную таблицу, но не удается ... . :-()
Из 8 вопросов, которые вы задали в течение последних трех лет, вы приняли 0 ответов. Принятие ответа помогает будущим читателям, указывая, что ответ сработал для вас. Это также увеличивает репутацию акита и ответа, отражающую их полезность с течением времени. Прочитайте, как принять и больше о принятии [** здесь **] (http://meta.stackoverflow.com/q/5234/234215), и, пожалуйста, подумайте о том, чтобы принять ответ на свой вопрос и на ваши прошлые вопросы. Спасибо. – kjhughes