Project

General

Profile

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