Project

General

Profile

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>
(1-1/12)