Java w3c document to xml

Написать org.w3.dom.Document в файл

Важной частью обработки XML является создание файлов XML, которые могут использоваться другими.

При обработке XML в Java у нас часто бывает экземплярorg.w3c.dom.Document t, который нам нужно экспортировать.

В этом кратком руководствеwe’ll see how to write a Document to a file both in an in-line as well as a pretty-printed format.

2. Использование трансформатора

Тяжелее при записиDocuments в файлы являетсяjavax.xml.transform.Transformer.

2.1. Создание трансформатора

Итак, давайте начнем с полученияTransformerFactory. Мы будем использовать эту фабрику для создания трансформатора:

TransformerFactory transformerFactory = TransformerFactory.newInstance()

Системное свойствоjavax.xml.transform.TransformerFactory указывает, какую реализацию фабрики нужно создать. Следовательно, это свойство называет конкретный подкласс класса sabstractTransformerFactory . But, if we don’t define this property, the transformer will simply use a platform default.

Обратите внимание, что начиная с Java 9 мы можем использоватьTransformerFactory. newDefaultInstance( ) для создания встроенной реализации по умолчанию для системы.

Теперь, когда у нас есть фабрика, давайте создадимTransformer:

Transformer transformer = transformerFactory.newTransformer();

2.2. Указание источника и результата

The Transformer transforms a source into a result. В нашем случае источником является документ XML, а результатом является выходной файл.

Во-первых, давайте укажем источник преобразования. Здесь мы будем использовать нашDocument для создания источника DOM:

DOMSource source = new DOMSource(document);

Note that the source doesn’t have to be the whole document. Пока XML правильно сформирован, мы можем использовать поддерево документа.

Далее мы укажем, куда преобразователь должен записывать результат преобразования:

FileWriter writer = new FileWriter(new File(fileName)); StreamResult result = new StreamResult(writer);

Здесь мы сообщаем преобразователю, что результатом является файловый поток. But, we can use any kind of java.io.Writer or java.io.OutputStream to create the*StreamResult.* Например, мы могли бы использоватьStringWriter to построитьString, который затем может быть зарегистрирован.

2.3. Создание файла XML

Наконец, мы приказываем преобразователю работать с исходным объектом и выводить результат в объект результата:

transformer.transform(source, result);

Это, наконец, создаст файл с содержимым XML-документа:

Источник

Java Convert String to XML Document and XML Document to String

Java Convert String to XML Document and XML Document to String

While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.

  1. Document convertStringToDocument(String xmlStr) : This method will take input as String and then convert it to DOM Document and return it. We will use InputSource and StringReader for this conversion.
  2. String convertDocumentToString(Document doc) : This method will take input as Document and convert it to String. We will use Transformer , StringWriter and StreamResult for this purpose.
package com.journaldev.xml; import java.io.StringReader; import java.io.StringWriter; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.xml.sax.InputSource; public class StringToDocumentToString < public static void main(String[] args) < final String xmlStr = "\n"+ "DeveloperMale"; Document doc = convertStringToDocument(xmlStr); String str = convertDocumentToString(doc); System.out.println(str); > private static String convertDocumentToString(Document doc) < TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer; try < transformer = tf.newTransformer(); // below code to remove XML declaration // transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); StringWriter writer = new StringWriter(); transformer.transform(new DOMSource(doc), new StreamResult(writer)); String output = writer.getBuffer().toString(); return output; >catch (TransformerException e) < e.printStackTrace(); >return null; > private static Document convertStringToDocument(String xmlStr) < DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try < builder = factory.newDocumentBuilder(); Document doc = builder.parse( new InputSource( new StringReader( xmlStr ) ) ); return doc; >catch (Exception e) < e.printStackTrace(); >return null; > > 

When we run above program, we get the same String output that we used to create DOM Document.

You can use replaceAll("\n|\r", "") to remove new line characters from String and get it in compact format.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Источник

Читайте также:  How to run linux command python
Оцените статью