如何从头开始用Java创建XML文件?

时间:2019-06-28 02:41:12

标签: java

我想从头开始创建XML文件,而函数解析存在问题,我有以下代码。该文档指出:

  

“抽象文档parse(InputSource is)解析内容   给定输入源作为XML文档并返回一个新的DOM Document   对象。”

//Line with the issue on the parse function
Document document = docBuilder.parse(new InputSource(new StringReader(str)));

我得到的错误是:“ DocumentBuilder类型的parse(InputStream)方法不适用于参数(InputSource)”

可能是什么问题?谢谢。

private static Document toXmlDocument(String str) throws ParserConfigurationException, SAXException, IOException{

  DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
  DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
  Document document = docBuilder.parse(new InputSource(new StringReader(str)));

  return document;
}

 public static void main(String[] args) {

       try{

       String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"+
       "<xbrli:xbrl\\n"+
       "xmlns:xbrli=\"http://www.xbrl.org/2003/instance\" "+
       "xmlns:link=\"http://www.xbrl.org/2003/linkbase\" "+
       "xmlns:xlink=\"http://www.w3.org/1999/xlink\"><\n"+
       "</xbrli:xbrl>";

       Document doc = toXmlDocument(xmlStr);

       }
       catch(Exception e ){
           e.printStackTrace();
       }
      }

1 个答案:

答案 0 :(得分:2)

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document d = db.parse(new ByteArrayInputStream(string.getBytes()));

这将为您工作。您也不需要将InputStream包装在InputSource中,因为这也是一个选择。