Listing 6. Parse the document
import java.io.File; import javax.xml.transform.TransformerFactory; import javax.xml.transform.Transformer; import javax.xml.transform.stream.StreamSource; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.Source; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import org.w3c.dom.Document; import org.w3c.dom.Element; public class ChooseStyleSheet { public static void main (String args[]) { String rootName = null; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse("scores.xml"); Element root = doc.getDocumentElement(); rootName = root.getNodeName(); } catch (Exception e) { e.printStackTrace(); } try { TransformerFactory transformerFactory = TransformerFactory.newInstance(); StreamSource source = new StreamSource("scores.xml"); StreamResult result = new StreamResult("result.xml"); String styleName = null; if (rootName.equals("results")){ styleName = "scores.xsl"; } else if (rootName.equals("entries")){ styleName = "entries.xsl"; } Transformer transformer = null; if (styleName == null) { transformer = transformerFactory.newTransformer(); } else { StreamSource style = new StreamSource(styleName); transformer = transformerFactory.newTransformer(style); } transformer.transform(source, result); } catch (Exception e) { e.printStackTrace(); } } } |