Как создать XML-файл в Java с нуля? - PullRequest
0 голосов
/ 28 июня 2019

Я хочу создать XML-файл с нуля, и у меня возникла проблема с анализом функции, у меня есть код ниже.Документация гласит:

"абстрактный синтаксический анализ документа (InputSource is) Анализирует содержимое указанного источника ввода как документ XML и возвращает новый объект документа DOM."

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

Я получаю сообщение об ошибке: «Метод parse (InputStream) в типе DocumentBuilder не применим для аргументов (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 Ответ

2 голосов
/ 28 июня 2019
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document d = db.parse(new ByteArrayInputStream(string.getBytes()));

Это будет работать для вас.Вам не нужно оборачивать InputStream во InputSource, так как это тоже опция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...