如何在java或Android中从字符串生成XML文档?

如何在java或Android中从字符串生成XML文档?,java,android,xml,file,Java,Android,Xml,File,我正在尝试从Java创建一个动态生成的XML文件。这是我尝试使用的代码: try{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); System.out.println("how many elements: "); String str = bf.readLine(); int no = Integ

我正在尝试从Java创建一个动态生成的XML文件。这是我尝试使用的代码:

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");
        }
试试看{
BufferedReader bf=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“多少元素:”);
字符串str=bf.readLine();
int no=Integer.parseInt(str);
System.out.println(“ENTER根:”);
字符串根=bf.readLine();
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
文档d1=db.newDocument();
元素e1=d1.createElement(根);
d1.儿童(e1);
for(int i=0;i
这段代码运行得很好。但现在我有了这样一个字符串:

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

我想从这个
xmlRecords
变量创建一个
.xml
文件。如何执行此操作?

您可以将XML字符串解析为
文档,如下所示:

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)));
String xmlRecords=“10000999910004444mc Donald's-Abdoun”;
DocumentBuilderFactory工厂=DocumentBuilderFactory.newInstance();
DocumentBuilder=factory.newDocumentBuilder();
文档d1=builder.parse(新的InputSource(新的StringReader(xmlRecords));

您可以保留问题中提到的文件编写部分,只需将
文档
实例的创建替换为上述代码。

如果您使用
XmlPullParser
,这里是另一个解决方案:

XmlPullParser parser = Xml.newPullParser();
parser.setInput(new StringReader("<your><xml><string>Hello</string></xml></your>"));
XmlPullParser=Xml.newPullParser();
setInput(新的StringReader(“Hello”);
Java1.6中的UTF-8(适用于Android)怎么样?我在字符串中获得UTF-8数据的“意外令牌”错误。