【问题标题】:How to include xml-style sheet into XML file using Java如何使用 Java 将 xml 样式表包含到 XML 文件中
【发布时间】:2013-10-09 21:39:45
【问题描述】:

我想使用 Java 在第二行将 xml 样式表添加到 XML 文件中。我在这里的堆栈溢出处发现了几乎这样的帖子:Add xml-stylesheet and get standalone = yes,但它在我的 xml 文件末尾附加了样式表。

我可以在我的 XML 文件的第二行包含(添加)吗?请给我建议。

【问题讨论】:

    标签: java xml styles


    【解决方案1】:

    这是在 xml 字符串的第二行添加 xml-stylesheet 的完整测试代码。你只需要复制代码并运行它。

    public static void main(String[] args)
            throws TransformerConfigurationException {
        String xmlstring = null;
        String filepath = "E:/C-CDA/MU2_CDA_WORKSPACE/AddingStylesheetTOxml/documentfile.txt";
        final String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
                + "<Emp id=\"1\"><name>Pankaj</name><age>25</age>\n"
                + "<role>Developer</role><gen>Male</gen></Emp>";
        Document doc2 = convertStringToDocument(xmlStr);
        Document doc1 = null;
        try {
            doc1 = addingStylesheet(doc2);
        } catch (ParserConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String str = convertDocumentToString(doc1);
        System.out.println(str);
    }
    
    private static <ProcessingInstructionImpl> Document addingStylesheet(
            Document doc) throws TransformerConfigurationException,
            ParserConfigurationException {
        ProcessingInstructionImpl pi = (ProcessingInstructionImpl) doc
                .createProcessingInstruction("xml-stylesheet",
                        "type=\"text/xsl\" href=\"mystylesheet.xsl\"");
        Element root = doc.getDocumentElement();
        doc.insertBefore((Node) pi, root);
    
    
    
        //trans.transform(new DOMSource(doc), new StreamResult(new OutputStreamWriter(bout, "utf-8")));
        return doc;
    
    }
    
    private static String convertDocumentToString(Document doc) {
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer transformer;
        try {
            transformer = tf.newTransformer();
            // below code to remove XML declaration
            // transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
            // "yes");
            StringWriter writer = new StringWriter();
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
            transformer.transform(new DOMSource(doc), new StreamResult(writer));
            String output = writer.getBuffer().toString();
            return output;
        } catch (TransformerException e) {
            e.printStackTrace();
        }
    
        return null;
    }
    
    private static Document convertStringToDocument(String xmlStr) {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder;
        Document doc = null;
        try {
            builder = factory.newDocumentBuilder();
            doc = builder.parse(new InputSource(new StringReader(xmlStr)));
    
        } catch (Exception e) {
            e.printStackTrace();
        }
        return doc;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      相关资源
      最近更新 更多