Skip to content
Snippets Groups Projects
Commit 7d03ac45 authored by npedot's avatar npedot
Browse files

adds xstl trasnfromer

parent 11cca3d1
No related branches found
No related tags found
No related merge requests found
package unibz.cs.semint.kprime.adapter
import unibz.cs.semint.kprime.service.IXSLTransformerService
import java.io.FileOutputStream
import javax.xml.transform.OutputKeys
import javax.xml.transform.TransformerFactory
import javax.xml.transform.stream.StreamResult
import javax.xml.transform.stream.StreamSource
class XSLTransformerJaxpAdapter:IXSLTransformerService {
override fun trasform(xsl: String, xml: String, out: String) {
val tFactory = TransformerFactory.newInstance()
val fileOutputStream = FileOutputStream(out)
val transformer = tFactory.newTransformer(StreamSource(xsl))
transformer.setOutputProperty(OutputKeys.INDENT, "yes")
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4")
transformer.transform(StreamSource(xml), StreamResult(fileOutputStream))
}
}
\ No newline at end of file
package unibz.cs.semint.kprime.service
interface IXSLTransformerService {
fun trasform(xsl:String,xml:String,out:String)
}
\ No newline at end of file
package unibz.cs.semint.kprime.usecase
import unibz.cs.semint.kprime.domain.UseCaseResult
import unibz.cs.semint.kprime.service.IXSLTransformerService
class XSLTrasformUseCase (val transformer:IXSLTransformerService){
fun transform(xsl: String, xml: String, out: String):UseCaseResult<Unit> {
return UseCaseResult("done",transformer.trasform(xsl,xml,out))
}
}
\ No newline at end of file
package unibz.cs.semint.kprime.usecase.xstl
import org.junit.Test
import unibz.cs.semint.kprime.adapter.XSLTransformerJaxpAdapter
import unibz.cs.semint.kprime.usecase.XMLSerializeUseCase
import unibz.cs.semint.kprime.usecase.XSLTrasformUseCase
class XSTLTransformTest {
@Test
fun test_xstl() {
// given
val transformer = XSLTrasformUseCase(XSLTransformerJaxpAdapter())
//val path = XSTLTransformTest::class.java.getResource("xslt/stylesheet.xsl").path
//println(path)
// when
transformer.transform(
"target/test-classes/xslt/stylesheet.xsl",
"target/test-classes/xslt/report.xml",
"target/test-classes/xslt/report.html"
)
// then
// check output file
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<urlset>
<url>
<stepno>1</stepno>
<stepname>Successfully Started browser at http://www.officedepot.com</stepname>
<status>PASS</status>
</url>
<url>
<stepno>2</stepno>
<stepname>click : By.cssSelector: .ui-link-inherit</stepname>
<status>PASS</status>
</url>
</urlset>
<?xml version="1.0" encoding="UTF-8"?>
<urlset>
<url>
<stepno>1</stepno>
<stepname>Successfully Started browser at http://www.officedepot.com</stepname>
<status>PASS</status>
</url>
<url>
<stepno>2</stepno>
<stepname>click : By.cssSelector: .ui-link-inherit</stepname>
<status>PASS</status>
</url>
<url>
<stepno>2</stepno>
<stepname>click : By.cssSelector: .ui-link-inherit</stepname>
<status>PASS</status>
</url>
<url>
<stepno>2</stepno>
<stepname>click : By.cssSelector: .ui-link-inherit</stepname>
<status>PASS</status>
</url>
<url>
<stepno>2</stepno>
<stepname>click : By.cssSelector: .ui-link-inherit</stepname>
<status>PASS</status>
</url>
</urlset>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<body>
<h1>Test HTML result</h1>
<table border="1">
<tr>
<th>stepno</th>
<th>stepname</th>
<th>status</th>
</tr>
<xsl:for-each select="urlset/url">
<tr>
<td>
<xsl:value-of select="stepno" />
</td>
<td>
<xsl:value-of select="stepname" />
</td>
<td>
<xsl:value-of select="status" />
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment