开发者

How to make XML document from string in java or Android?

I am trying to create a dynamically generated XML file from Java. This is the code that I am trying to use:

try{
            BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

            System.out.println("how many elements: ");
            String str = bf.readLine();
            int no = Integer.parseInt(str);

            System.out.println("enetr root: ");
            String root = bf.readLine();

            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document d1 = db.newDocument();
            Element e1 = d1.createElement(root);
            d1.appendChild(e1);

            for (int i = 0; i < no; i++) {
                System.out.println("enter element: ");
                String element = bf.readLine();

                System.out.println("enter data: ");
                String data = bf.readLine();
                Element em = d1.createElement(element);
                em.appendChild(d1.createTextNode(data));

                e1.appendChild(em);
            }
            TransformerFactory tf = TransformerFactory.newInstance();
            Transformer transformer = tf.newTransformer();
            DOMSource source = new DOMSource(d1);

            File file = new File("src\\xml\\copy.xml");
            System.out.println(file);

            if(!file.exists()){
                file.createNewFile();
            }
            OutputStream outputStream = new FileOutputStream(file);
            StreamResult result = new StreamResult(outputStream);
            transformer.transform(source, result);
            outputStream.close();

        }catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
            System.out.println("file not created");
        }

This code works very well. But now I have a string as such:

String xmlRecords = "<data><terminal_id>1000099999</terminal_id><merchant_id>10004444</merchant_id><开发者_开发问答merchant_info>Mc Donald's - Abdoun</merchant_info></data>";

I want to create a .xml file from this xmlRecords variable. How do I do this?


You can parse an XML string to a Document like this:

String xmlRecords = "<data><terminal_id>1000099999</terminal_id><merchant_id>10004444</merchant_id><merchant_info>Mc Donald's - Abdoun</merchant_info></data>";

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document d1 = builder.parse(new InputSource(new StringReader(xmlRecords)));

You can keep the file writing part mentioned in your question, just replace the creation of the Document instance with above code.


Here is another solution if you are using XmlPullParser:

XmlPullParser parser = Xml.newPullParser();
parser.setInput(new StringReader("<your><xml><string>Hello</string></xml></your>"));
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜