Мой xsl-файл (соответствующая часть)
вот так:
<xsl:for-each select="doc">
<br>
<xsl:value-of select="members/member"/
</br>
<br>
<xsl:value-of select="summary"/>
</br>
</xsl:for-each>
</body>
</html>
</xsl:template>
Это плохо сформированный XML !
Давайте подумаем, что соответствующая, правильно сформированная часть:
<xsl:for-each select="doc">
<br>
<xsl:value-of select="members/member"/>
</br>
<br>
<xsl:value-of select="summary"/>
</br>
</xsl:for-each>
Есть много проблем с этим кодом :
AFAIK (x) HTML-элемент br
не должен содержать . Может быть, вы хотели:
<xsl:value-of select="members/member"/>
Инструкция <xsl:value-of>
создает текстовый узел, содержащий строковое значение только для первого узла , указанное в выражении XPath в атрибуте select
.
Возможно, вы хотели:
<xsl:copy-of select="members/member/text()"/>
0,3. Указание всех буквальных элементов результата и использование <xsl:for-each>
в одном шаблоне не является хорошей практикой программирования XSLT . Рекомендуется использовать больше шаблонов и соответственно <xsl:apply-templates>
вместо <xsl:for-each>
.