Чтение XML онлайн и его хранение (с использованием Java) - PullRequest
1 голос
/ 18 августа 2011

Я нашел и последовал примеру из Stackoverflow (/1496948/kak-prochitat-xml-otvet-s-url-v-java) о том, как читать XML-файл с URL-адреса (как вы можете видеть в моем коде, вставленном ниже). Моя единственная проблема в том, что теперь, когда я получил программу для чтенияXML, как мне получить его для хранения? Например, можно ли заставить его сохранить информацию в файле XML, встроенном в проект (это будет лучшим решением для меня, если это возможно)? Например, взять дляНапример, у меня есть пустой XML-файл, встроенный в проект. Программа запускается, считывает XML-код из URL-адреса и сохраняет все это в предварительно созданный пустой XML-файл. Могу ли я сделать это?

Если я что-то путаю или не понимаю, просто попросите уточнить, что я ищу.

А вот мой код, если вы хотите посмотреть на то, что я имею до сих пор:

package xml.parsing.example;

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
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.SAXException;

public class XmlParser {
    public static void main (String[] args) throws IOException, ParserConfigurationException, SAXException, TransformerException {
        URL url = new URL("http://totheriver.com/learn/xml/code/employees.xml");
        URLConnection conn = url.openConnection();

        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse(conn.getInputStream());

        TransformerFactory tfactory = TransformerFactory.newInstance();
        Transformer xform = tfactory.newTransformer();

        // that’s the default xform; use a stylesheet to get a real one
        xform.transform(new DOMSource(doc), new StreamResult(System.out));
    }
}

Ответы [ 2 ]

4 голосов
/ 18 августа 2011

Очень просто:

File myOutput = new File("c:\\myDirectory\\myOutput.xml");
xform.transform(new DOMSource(doc), new StreamResult(myOutput));
0 голосов
/ 18 августа 2011

На этой странице есть несколько замечательных примеров сериализации объекта DOM в аккуратно отформатированный XML-файл.

...