繁体   English   中英

如何在Java中将字符串转换为xml?

[英]How to convert a string to a xml in java?

我有一个字符串对象“ hello world”,我需要从该字符串中创建一个带有hello world作为文本内容的xml文件。 我尝试了以下代码片段

String xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"></soap:Envelope>";

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();   

    DocumentBuilder builder;   
    try  
    {   
        builder = factory.newDocumentBuilder();   

        // Use String reader   
        Document document = builder.parse( new InputSource(   
                new StringReader( xmlString) ) );   

        TransformerFactory tranFactory = TransformerFactory.newInstance();   
        Transformer aTransformer = tranFactory.newTransformer();   
        Source src = new DOMSource( document );   
        Result dest = new StreamResult( new File("D:\\myXML.xml" ) );   
        aTransformer.transform( src, dest );  

    } catch (Exception e)   
    {   
        // TODO Auto-generated catch block   
        e.printStackTrace();   
    }   

此代码可以正常工作。 但是当我用“ Hello world”替换字符串时,它不起作用。 有人可以帮我吗? 谢谢

您不能将字符串“ hello world”转换为XML,因为它不是有效的xml文档。 它没有声明,也没有标签。

上面的代码不会将文本转换为xml对象,它只会采用已经是有效xml的字符串并将其写到文件中。

老实说,如果您只想将其写入文件,那么xml的东西就没有必要了。

如果您想要某种“ hello world” xml文件,则需要自己添加声明和一些标签。

该错误是因为您试图将xmlString解析为有效的XML字符串,而不是。 例如,您的代码可以使用以下xmlString正常运行:

String xmlString = "<hi>Hello World</hi>";

如果您有String newNode = "<node>Hello World</node>";

您可以使用

 Element node =  DocumentBuilderFactory
    .newInstance()
    .newDocumentBuilder()
    .parse(new ByteArrayInputStream(newNode.getBytes()))
    .getDocumentElement();

最简单的解决方案是:如果它是有效的字符串(按照XML规范正确),则使用FileWriter将其写入新文件并提供.xml扩展名。 无论如何,如果它不是有效的XML字符串,它将不会转换

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM