Mar 14

Reflection allows you to find all the methods of a class using the Class class and it’s getMethods() methods. Clearest way to explain is with an example.

String className = "java.lang.String";
Class clazz = Class.forName(className);
Method[] methods = clazz.getMethods();
for (Method method : methods)
{
	String methodName = method.getName();
	System.out.println(methodName);
}

written by objects \\ tags: , ,

Mar 10

Transforming XML in Java is achieved using a Transformer. To use an XSL file for the transformation involves first creating Templates instance which can then be used to create the required Transformer.

TransformerFactory factory = TransformerFactory.newInstance();
Templates template = factory.newTemplates(
   new StreamSource(new FileInputStream(xslPath)));
Transformer transformer = template.newTransformer();
Source source = new StreamSource(new FileInputStream(xmlInputPath));
Result result = new StreamResult(new FileOutputStream(xmlOutputPath));
transformer.transform(source, result);

written by objects \\ tags: , , ,

Mar 10

XSL is great for transforming an XML file. The following XSL can be used to convert all element names into lower case.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:variable
       name="lcase">abcdefghijklmnopqrstuvwxyz</xsl:variable>
    <xsl:variable
       name="ucase">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
    
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="*">
        <xsl:element name="{translate(local-name(),$ucase,$lcase)}">
            <xsl:apply-templates select="@*|node()"/>
        </xsl:element>
    </xsl:template>
    
</xsl:stylesheet>

How to transform XML using XSL may also be of interest to you.

written by objects \\ tags: