Project

General

Profile

1 26600 sandro.lab
package eu.dnetlib;
2
3
import java.io.StringWriter;
4
5
import org.junit.Test;
6
import org.w3c.dom.Node;
7
import org.w3c.dom.NodeList;
8
9
import eu.dnetlib.miscutils.functional.xml.ApplyXslt;
10
11
/**
12
 * Unit test for simple App.
13
 */
14
public class AppTest {
15
16
	@Test
17
	public void testXslt() {
18
		String res = (new ApplyXslt(getXslt())).evaluate(getXml());
19
		System.out.println("******************");
20
		System.out.println(res);
21
		System.out.println("******************");
22
	}
23
24
25
	public static String javaMethod(NodeList list) {
26
		System.out.println("******************");
27
		System.out.println("TYPE   : " + list.toString());
28
		System.out.println("LENGTH : " + list.getLength());
29
		for (int i = 0; i<list.getLength(); i++) {
30
			Node node = list.item(i);
31
32
			System.out.println("ELEM " + i + ": " + node.getLocalName());
33
		}
34
35
		System.out.println("******************");
36
		return "SUCA";
37
	}
38
39
40
	private String getXml() {
41
		final StringWriter sw = new StringWriter();
42
		sw.append("<?xml version='1.0' encoding='UTF-8'?>\n");
43
		sw.append("<record>\n");
44
		sw.append("<metadata>\n");
45
		sw.append("<a>A text value</a>\n");
46
		sw.append("<b attr='attribute value'/>\n");
47
		sw.append("</metadata>\n");
48
		sw.append("</record>\n");
49
50
		return sw.toString();
51
	}
52
53
	private String getXslt() {
54
		final StringWriter sw = new StringWriter();
55
56
		sw.append("<?xml version='1.0' encoding='UTF-8'?>\n");
57
		sw.append("<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:dnet='eu.dnetlib.AppTest' exclude-result-prefixes='xsl dnet'>\n");
58
		sw.append("<xsl:output omit-xml-declaration='yes' indent='yes'/>\n");
59
		sw.append("<xsl:template match='/*'>\n");
60
		sw.append("<xsl:variable name='metadata' select=\"//*[local-name()='metadata']/*\" />\n");
61
		sw.append("<ROWS>\n");
62
		sw.append("<xsl:value-of select='dnet:javaMethod($metadata)'/>\n");
63
		sw.append("</ROWS>\n");
64
		sw.append("</xsl:template>\n");
65
		sw.append("</xsl:stylesheet>\n");
66
		return sw.toString();
67
	}
68
}