Revision 63180
Added by Michele Artini 4 months ago
modules/dnet-isti/trunk/src/main/java/eu/dnetlib/data/utils/XsltFunctions.java | ||
---|---|---|
26 | 26 |
return cleanNames(s, StringUtils.countMatches(s, ",") > 1 ? "," : ";"); |
27 | 27 |
} |
28 | 28 |
|
29 |
public static String extractYear(final String s) { |
|
30 |
if (StringUtils.isBlank(s)) { return ""; } |
|
31 |
final Matcher m = Pattern.compile("^.*(\\d{4}).*$").matcher(s); |
|
32 |
return m.matches() ? m.group(1) : ""; |
|
33 |
} |
|
34 |
|
|
29 | 35 |
private static String cleanNames(final String s, final String sep) { |
30 | 36 |
return Arrays.stream(s.split(sep)) |
31 | 37 |
.map(String::trim) |
modules/dnet-isti/trunk/src/main/resources/cineca-people/iris-test-tr.xsl | ||
---|---|---|
74 | 74 |
</contributors> |
75 | 75 |
|
76 | 76 |
<date> |
77 |
<xsl:value-of select="//datacite:date[@dateType='Issued']" /> |
|
77 |
<xsl:choose> |
|
78 |
<xsl:when test="//datacite:date[@dateType='Issued']"> |
|
79 |
<xsl:value-of select="dnet:extractYear(//datacite:date[@dateType='Issued'][1])" /> |
|
80 |
</xsl:when> |
|
81 |
<xsl:when test="//datacite:date[@dateType='Available']"> |
|
82 |
<xsl:value-of select="dnet:extractYear(//datacite:date[@dateType='Available'][1])" /> |
|
83 |
</xsl:when> |
|
84 |
<xsl:otherwise> |
|
85 |
<xsl:value-of select="dnet:extractYear(//datacite:date[1])" /> |
|
86 |
</xsl:otherwise> |
|
87 |
</xsl:choose> |
|
78 | 88 |
</date> |
79 | 89 |
|
80 | 90 |
<language> |
modules/dnet-isti/trunk/src/test/java/eu/dnetlib/data/utils/XsltFunctionsTest.java | ||
---|---|---|
7 | 7 |
public class XsltFunctionsTest { |
8 | 8 |
|
9 | 9 |
@Test |
10 |
public void testCleanDoi_1() {
|
|
10 |
public void testCleanDoi() { |
|
11 | 11 |
assertEquals("10.3233/faia200182", XsltFunctions.cleanDoi(" 10.3233/FAIA200182 ")); |
12 |
} |
|
13 |
|
|
14 |
@Test |
|
15 |
public void testCleanDoi_2() { |
|
16 | 12 |
assertEquals("", XsltFunctions.cleanDoi("")); |
17 |
} |
|
18 |
|
|
19 |
@Test |
|
20 |
public void testCleanDoi_3() { |
|
21 | 13 |
assertEquals("", XsltFunctions.cleanDoi(null)); |
22 | 14 |
} |
23 | 15 |
|
24 | 16 |
@Test |
25 |
public void testCapitalizeName_1() {
|
|
17 |
public void testCapitalizeName() { |
|
26 | 18 |
assertEquals("Michele Artini", XsltFunctions.capitalize("MICHELE ARTINI")); |
27 |
} |
|
28 |
|
|
29 |
@Test |
|
30 |
public void testCapitalizeName_2() { |
|
31 | 19 |
assertEquals("Michele Artini", XsltFunctions.capitalize("michele artini")); |
32 |
} |
|
33 |
|
|
34 |
@Test |
|
35 |
public void testCapitalizeName_3() { |
|
36 | 20 |
assertEquals("Michele-Francesco Artini", XsltFunctions.capitalize("MICHELE-FRANCESCO ARTINI")); |
37 |
} |
|
38 |
|
|
39 |
@Test |
|
40 |
public void testCapitalizeName_4() { |
|
41 | 21 |
assertEquals("Michele Artini-Smith", XsltFunctions.capitalize("MICHELE ARTINI-SMITH")); |
42 |
} |
|
43 |
|
|
44 |
@Test |
|
45 |
public void testCapitalizeName_5() { |
|
46 | 22 |
assertEquals("Michele Francesco Artini", XsltFunctions.capitalize("MICHELE FRANCESCO ARTINI")); |
23 |
assertEquals("Andrea Dell'Amico", XsltFunctions.capitalize("andrea dell'amico")); |
|
24 |
assertEquals("Andrea Dell'Amico", XsltFunctions.capitalize("andrea dell'amico")); |
|
47 | 25 |
} |
48 | 26 |
|
49 | 27 |
@Test |
50 |
public void testCapitalizeName_6() { |
|
51 |
assertEquals("Andrea Dell'Amico", XsltFunctions.capitalize("andrea dell'amico")); |
|
28 |
public void testExtractYear() { |
|
29 |
assertEquals("2022", XsltFunctions.extractYear("2022")); |
|
30 |
assertEquals("2022", XsltFunctions.extractYear(" 2022 ")); |
|
31 |
assertEquals("2022", XsltFunctions.extractYear("12/02/2022")); |
|
32 |
assertEquals("2022", XsltFunctions.extractYear("2022-12-12")); |
|
52 | 33 |
} |
53 | 34 |
} |
Also available in: Unified diff
cineca: dates