1
|
#macro(keys)
|
2
|
#foreach($key in $keys)<xsl:value-of select="$key"/>#end
|
3
|
#end
|
4
|
<?xml version="1.0" encoding="UTF-8"?>
|
5
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
6
|
|
7
|
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
|
8
|
<xsl:template match="/">
|
9
|
<xsl:apply-templates/>
|
10
|
</xsl:template>
|
11
|
|
12
|
<xsl:template match="@*|node()">
|
13
|
<xsl:copy>
|
14
|
<xsl:apply-templates select="/response/results/result"/>
|
15
|
</xsl:copy>
|
16
|
</xsl:template>
|
17
|
|
18
|
<xsl:template match="result">
|
19
|
<result>
|
20
|
<xsl:choose>
|
21
|
<xsl:when test="field[@indexId='resulttypeid']/@value='publication'">
|
22
|
|
23
|
@article{<xsl:value-of select="substring-before(field/field[@indexId='personfullname']/@value,' ')"/>
|
24
|
<xsl:value-of select="substring-before(field[@indexId='resultdateofacceptance']/@value,'-')"/>
|
25
|
<xsl:value-of select="substring-before(field[@indexId='resulttitle']/@value,' ')"/>
|
26
|
|
27
|
<xsl:if test="field[@indexId='dc:source']/@value !=''">
|
28
|
journal = "<xsl:for-each select="field[@indexId='dc:source']"><xsl:if test="position()>1"> and </xsl:if><xsl:value-of select='./@value'/></xsl:for-each>",
|
29
|
</xsl:if>
|
30
|
<xsl:if test="field/field[@indexId='personfullname']/@value !=''">
|
31
|
|
32
|
author = "<xsl:for-each select="field/field[@indexId='personfullname']"><xsl:if test="position()>1"> and </xsl:if><xsl:value-of select='./@value'/></xsl:for-each>",
|
33
|
</xsl:if>
|
34
|
<xsl:if test="field[@indexId='resulttitle']/@value !=''">
|
35
|
|
36
|
title = "<xsl:for-each select="field[@indexId='resulttitle']"><xsl:if test="position()>1"> and </xsl:if><xsl:value-of select='./@value'/></xsl:for-each>",
|
37
|
</xsl:if>
|
38
|
<xsl:if test="field[@indexId='resultdateofacceptance']/@value !=''">
|
39
|
|
40
|
year = "<xsl:for-each select="field[@indexId='resultdateofacceptance']/@value"><xsl:if test="position()>1"> and </xsl:if><xsl:value-of select="substring-before(.,'-')"/></xsl:for-each>"
|
41
|
</xsl:if>
|
42
|
}
|
43
|
</xsl:when>
|
44
|
|
45
|
|
46
|
#foreach ($case in $cases)
|
47
|
<xsl:when test="field[@indexId='$name']/@value='$case.getXmlName()'">
|
48
|
|
49
|
@$case.getBibtexName(){#keys()
|
50
|
#foreach ($termKey in $case.getFields().keySet())
|
51
|
<xsl:if test="field[@indexId='$case.getFields().get($termKey)']/@value !=''">
|
52
|
$termKey = "<xsl:for-each select="field[@indexId='$case.getFields().get($termKey)']"><xsl:if test="position()>1"> and </xsl:if><xsl:value-of select="./@value"/></xsl:for-each>",</xsl:if>
|
53
|
#end
|
54
|
}
|
55
|
</xsl:when>
|
56
|
#end
|
57
|
<xsl:otherwise>
|
58
|
@$defaultcase.getBibtexName(){#keys()
|
59
|
#foreach ($termKey in $defaultcase.getFields().keySet())
|
60
|
<xsl:if test="//field[@indexId='$defaultcase.getFields().get($termKey)']/@value !=''">
|
61
|
$termKey = "<xsl:for-each select="field[@indexId='$defaultcase.getFields().get($termKey)']"><xsl:if test="position()>1"> and </xsl:if><xsl:value-of select="./@value"/></xsl:for-each>",</xsl:if>
|
62
|
#end
|
63
|
}
|
64
|
|
65
|
</xsl:otherwise>
|
66
|
</xsl:choose>
|
67
|
</result>
|
68
|
</xsl:template>
|
69
|
|
70
|
|
71
|
<xsl:template match="@*|node()">
|
72
|
<xsl:copy>
|
73
|
<xsl:apply-templates select="@*|node()"/>
|
74
|
</xsl:copy>
|
75
|
</xsl:template>
|
76
|
|
77
|
</xsl:stylesheet>
|