Project

General

Profile

1
package eu.dnetlib;
2

    
3
import static org.junit.Assert.assertEquals;
4

    
5
import java.io.StringReader;
6
import java.io.StringWriter;
7

    
8
import org.dom4j.Document;
9
import org.dom4j.DocumentException;
10
import org.dom4j.io.SAXReader;
11
import org.junit.Test;
12
import org.w3c.dom.Node;
13
import org.w3c.dom.NodeList;
14

    
15
import eu.dnetlib.miscutils.functional.xml.ApplyXslt;
16

    
17
/**
18
 * Unit test for simple App.
19
 */
20
public class AppTest {
21

    
22
	@Test
23
	public void testXslt() {
24
		String res = new ApplyXslt(getXslt()).evaluate(getXml());
25
		System.out.println("******************");
26
		System.out.println(res);
27
		System.out.println("******************");
28
	}
29

    
30
	@Test
31
	public void testXpath() throws DocumentException {
32
		SAXReader reader = new SAXReader();
33
		Document doc = reader.read(new StringReader("<a><b>test</b></a>"));
34
		assertEquals("", doc.valueOf("//c"));
35
		assertEquals("test", doc.valueOf("//b"));
36
	}
37

    
38
	public static String javaMethod(final NodeList list) {
39
		System.out.println("******************");
40
		System.out.println("TYPE   : " + list.toString());
41
		System.out.println("LENGTH : " + list.getLength());
42
		for (int i = 0; i < list.getLength(); i++) {
43
			Node node = list.item(i);
44

    
45
			System.out.println("ELEM " + i + ": " + node.getLocalName());
46
		}
47

    
48
		System.out.println("******************");
49
		return "ACUS";
50
	}
51

    
52
	private String getXml() {
53
		final StringWriter sw = new StringWriter();
54
		sw.append("<?xml version='1.0' encoding='UTF-8'?>\n");
55
		sw.append("<record>\n");
56
		sw.append("<metadata>\n");
57
		sw.append("<a>A text value</a>\n");
58
		sw.append("<b attr='attribute value'/>\n");
59
		sw.append("</metadata>\n");
60
		sw.append("</record>\n");
61

    
62
		return sw.toString();
63
	}
64

    
65
	private String getXslt() {
66
		final StringWriter sw = new StringWriter();
67

    
68
		sw.append("<?xml version='1.0' encoding='UTF-8'?>\n");
69
		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");
70
		sw.append("<xsl:output omit-xml-declaration='yes' indent='yes'/>\n");
71
		sw.append("<xsl:template match='/*'>\n");
72
		sw.append("<xsl:variable name='metadata' select=\"//*[local-name()='metadata']/*\" />\n");
73
		sw.append("<ROWS>\n");
74
		sw.append("<xsl:value-of select='dnet:javaMethod($metadata)'/>\n");
75
		sw.append("</ROWS>\n");
76
		sw.append("</xsl:template>\n");
77
		sw.append("</xsl:stylesheet>\n");
78
		return sw.toString();
79
	}
80
}
    (1-1/1)