Revision 61531
Added by Michele Artini over 2 years ago
modules/dnet-isti/trunk/src/test/java/eu/dnetlib/data/utils/XsltFunctionsTest.java | ||
---|---|---|
1 |
package eu.dnetlib.data.utils; |
|
2 |
|
|
3 |
import static org.junit.Assert.assertEquals; |
|
4 |
|
|
5 |
import org.junit.Test; |
|
6 |
|
|
7 |
public class XsltFunctionsTest { |
|
8 |
|
|
9 |
@Test |
|
10 |
public void testCleanDoi_1() { |
|
11 |
assertEquals("10.3233/faia200182", XsltFunctions.cleanDoi(" 10.3233/FAIA200182 ")); |
|
12 |
} |
|
13 |
|
|
14 |
@Test |
|
15 |
public void testCleanDoi_2() { |
|
16 |
assertEquals("", XsltFunctions.cleanDoi("")); |
|
17 |
} |
|
18 |
|
|
19 |
@Test |
|
20 |
public void testCleanDoi_3() { |
|
21 |
assertEquals("", XsltFunctions.cleanDoi(null)); |
|
22 |
} |
|
23 |
|
|
24 |
} |
modules/dnet-isti/trunk/src/main/java/eu/dnetlib/data/utils/XsltFunctions.java | ||
---|---|---|
48 | 48 |
} |
49 | 49 |
|
50 | 50 |
public static String cleanDoi(final String doi) { |
51 |
if (StringUtils.isBlank(doi)) { return ""; } |
|
52 |
|
|
51 | 53 |
final String x = doi.replaceAll("\\?", "") |
52 | 54 |
.replaceAll("\\s*\\/\\s*", "/") |
53 | 55 |
.replaceAll("\\s*\\-\\s*", "-") |
54 | 56 |
.trim() |
55 |
.replaceAll("\\s", "_"); |
|
57 |
.replaceAll("\\s", "_") |
|
58 |
.toLowerCase(); |
|
56 | 59 |
|
57 | 60 |
if (!x.equals(doi)) { |
58 | 61 |
log.info("Cleaning doi: " + doi + " -> " + x); |
modules/dnet-isti/trunk/src/main/java/eu/dnetlib/data/mdstore/plugins/EnrichOpenairePlugin.java | ||
---|---|---|
201 | 201 |
|
202 | 202 |
private void updateDois(final MdRecord doc, final Node n) { |
203 | 203 |
for (final Object od : n.selectNodes(".//*[local-name()='result']/pid[@classid='doi']")) { |
204 |
final String doi = ((Node) od).getText().trim();
|
|
204 |
final String doi = XsltFunctions.cleanDoi(((Node) od).getText());
|
|
205 | 205 |
if (StringUtils.isNotBlank(doi)) { |
206 | 206 |
doc.getDois().add(doi); |
207 | 207 |
} |
Also available in: Unified diff
dois in lower case