0

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

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”替换字符串时它不起作用。任何人都可以帮助我吗?谢谢

4

4 回答 4

2

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

上面的代码不会将文本转换为 xml 对象,它只会获取一个已经是有效 xml 的字符串并将其写入文件。

老实说,如果你只是想把它写到一个文件中,xml 的东西都是不必要的。

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

于 2012-07-13T07:03:31.210 回答
1

此错误是因为您尝试将其解析xmlString为有效的 XML 字符串,但事实并非如此。例如,您的代码将运行良好,如下所示xmlString

String xmlString = "<hi>Hello World</hi>";
于 2012-07-13T07:04:53.673 回答
0

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

您可以使用

 Element node =  DocumentBuilderFactory
    .newInstance()
    .newDocumentBuilder()
    .parse(new ByteArrayInputStream(newNode.getBytes()))
    .getDocumentElement();
于 2012-07-13T07:06:26.767 回答
0

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

于 2012-07-13T10:12:49.767 回答