Если 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(.))
.
Вот некоторый быстрый код, я вышел из библиотеки, которую я имел поблизости. Мог бы хотеть нарядить его, но это работает:
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();
}
править: как комментатор заметил ранее, у меня была синтаксическая ошибка. должен был вытащить некоторые чувствительные строки, таким образом, я не стану консервированным и откладывать их в неправильном порядке. спасибо! ;-)
Можно использовать Dom4J:
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter( System.out, format );
writer.write( document );
Я поместил это в комментарий, но затем думал, что для дальнейшего использования люди могли бы найти это легче, если бы я на самом деле добавил его как ответ. Так... Ответ Joshua.ewer корректен, но требует xalan-2.7.0.jar.