0
对于我定义的变量,我将从每个组的标签中获取一个值。我喜欢用这个变量来从另一个标签获取价值。如何从每个组的标签中获取一个值xslt
首先是让从XML的理解截图:
下面的截图从认识我的XSLT代码:
XML代码:
<?xml version="1.0" encoding="UTF-8"?>
<unidatenbank>
<studenten>
<student>
<daten>
<matrikelnummer>2354444</matrikelnummer>
<vorname>Horst</vorname>
<nachname>Wallenstein</nachname>
<geburtsdatum>09.09.1999</geburtsdatum>
<studiengang>Politikwissenschaft</studiengang>
</daten>
<leistungen>
<creditpoints>178</creditpoints>
<noten>
<note veranstaltungsnummer="754125">1.7</note>
<note veranstaltungsnummer="452781">2.7</note>
</noten>
</leistungen>
</student>
<student>
<daten>
<matrikelnummer>2367897</matrikelnummer>
<vorname>Isabella</vorname>
<nachname>Gans</nachname>
<geburtsdatum>08.08.1988</geburtsdatum>
<studiengang>Politikwissenschaft</studiengang>
</daten>
<leistungen>
<creditpoints>190</creditpoints>
<noten>
<note veranstaltungsnummer="754125">1.0</note>
<note veranstaltungsnummer="452781">1.7</note>
</noten>
</leistungen>
</student>
</studenten>
<veranstaltungen>
<veranstaltung>
<veranstaltungsnummer>754125</veranstaltungsnummer>
<veranstaltungstitel>Einführung in die Politikwissenschaft</veranstaltungstitel>
<dozent>Prof. Dr. Schnatterberg</dozent>
<modul>EM 1</modul>
</veranstaltung>
<veranstaltung>
<veranstaltungsnummer>452781</veranstaltungsnummer>
<veranstaltungstitel>Theorien der Politik</veranstaltungstitel>
<dozent>Dr. Hummels</dozent>
<modul>EM 2</modul>
</veranstaltung>
</veranstaltungen>
</unidatenbank>
XSLT代码:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs">
<xsl:output method="text"/>
<xsl:param name="matrikelnummer" select="2367897"/>
<xsl:template match="/unidatenbank">
<xsl:for-each-group select="studenten/student[daten/matrikelnummer=$matrikelnummer]" group-by="daten">
<xsl:text>Persönlicher Transkript:
</xsl:text>
<xsl:value-of select="vorname"/>
<xsl:value-of select="current-grouping-key()" />
</xsl:for-each-group>
<xsl:for-each-group select="veranstaltungen" group-by="veranstaltung">
<xsl:variable name="veranstaltungsnummer" select="./veranstaltungsnummer"/>
<xsl:value-of select="current-grouping-key()" />
<xsl:text>Note:
</xsl:text>
<xsl:value-of select="$veranstaltungsnummer"/>
<xsl:for-each select="studenten/student">
<xsl:value-of select="./leistungen/noten/note[@veranstaltungsnummer=$veranstaltungsnummer]"/>
</xsl:for-each>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
Here是我的XslTransform代码示例。
我会得到这样的输出:
Persönlicher Transkript:
2367897
Isabella
Gans
08.08.1988
Politikwissenschaft
754125
Einführung in die Politikwissenschaft
Prof. Dr. Schnatterberg
EM 1
Note: 1.0
452781
Theorien der Politik
Dr. Hummels
EM 2
Note: 1.7
请发布您的预期输出(3)。 – 2015-03-25 00:14:30
** 1。**你的例子很混乱,因为(a)你是由学生分组的,你的XML有两个学生,但你的结果只显示一个; (b)当每个学生只有一个记录时,你为什么按学生分组?和(c)为什么你使用两个学生都与两个(会议?)有关的例子?你如何能够告诉成功失败? - ** 2。**为什么你不使用(或至少试图使用)**键**将会议链接到学生 - 如[上一个问题]所示(http:// stackoverflow .COM /问题/ 29199680 /)? – 2015-03-25 05:12:24