существует ли простой способ преобразовать мой объект XML назад для Строкового представления в Java?

Если l сохранено, то, действительно, база R кажется наилучшей:

l <- list('test', 'one')

# If you want only the first one or there is a unique element
l[which.max(nchar(l))]
# [[1]]
# [1] "test"

# General
l[nchar(l) == max(nchar(l))]
# [[1]]
# [1] "test"

Теперь с keep мы можем сделать

list('test', 'one') %>% keep(function(x) nchar(x) == max(nchar(.)))
# [[1]]
# [1] "test"

Кажется, что проблема заключается в том, что оба . и .x являются просто отдельными элементами списка в ~ nchar(.x) == max(nchar(.)).

7
задан Genia S. 3 February 2009 в 18:54
поделиться

3 ответа

Вот некоторый быстрый код, я вышел из библиотеки, которую я имел поблизости. Мог бы хотеть нарядить его, но это работает:

import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;

public String TransformDocumentToString(Document doc)
{
    DOMSource dom = new DOMSource(doc);
    StringWriter writer = new StringWriter();  
    StreamResult result = new StreamResult(writer);

    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer();
    transformer.transform(dom, result);

    return writer.toString();
} 

править: как комментатор заметил ранее, у меня была синтаксическая ошибка. должен был вытащить некоторые чувствительные строки, таким образом, я не стану консервированным и откладывать их в неправильном порядке. спасибо! ;-)

5
ответ дан 7 December 2019 в 10:08
поделиться

Можно использовать Dom4J:

OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter( System.out, format );
writer.write( document );
1
ответ дан 7 December 2019 в 10:08
поделиться

Я поместил это в комментарий, но затем думал, что для дальнейшего использования люди могли бы найти это легче, если бы я на самом деле добавил его как ответ. Так... Ответ Joshua.ewer корректен, но требует xalan-2.7.0.jar.

0
ответ дан 7 December 2019 в 10:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: