Существует ли более изящный способ преобразовать XML-документ в Строку в Java, чем этот код?

Решение 1: удалить ONLY_FULL_GROUP_BY из консоли mysql

mysql > SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

, вы можете прочитать здесь здесь

Решение 2: Удалить ONLY_FULL_GROUP_BY из phpmyadmin

  • Открыть phpmyadmin & amp; выберите localhost
  • Нажмите меню Переменные & amp; прокрутите вниз для режима sql
  • Нажмите кнопку редактирования, чтобы изменить значения & amp; удалите ONLY_FULL_GROUP_BY & amp; нажмите «Сохранить».

67
задан Brian 9 July 2009 в 03:18
поделиться

4 ответа

Полагается , DOM Level3 Загружает/Сохраняет :

public String getStringFromDoc(org.w3c.dom.Document doc)    {
    DOMImplementationLS domImplementation = (DOMImplementationLS) doc.getImplementation();
    LSSerializer lsSerializer = domImplementation.createLSSerializer();
    return lsSerializer.writeToString(doc);   
}
81
ответ дан ykaganovich 24 November 2019 в 14:39
поделиться

Это немного более кратко:

try {
    Transformer transformer = TransformerFactory.newInstance().newTransformer();
    StreamResult result = new StreamResult(new StringWriter());
    DOMSource source = new DOMSource(doc);
    transformer.transform(source, result);
    return result.getWriter().toString();
} catch(TransformerException ex) {
    ex.printStackTrace();
    return null;
}

Иначе Вы могли пользоваться библиотекой как XMLSerializer от Apache:

//Serialize DOM
OutputFormat format    = new OutputFormat (doc); 
// as a String
StringWriter stringOut = new StringWriter ();    
XMLSerializer serial   = new XMLSerializer (stringOut,format);
serial.serialize(doc);
// Display the XML
System.out.println(stringOut.toString());
13
ответ дан Thilina Sampath 24 November 2019 в 14:39
поделиться

API преобразователя является единственным XML-стандартным способом преобразовать от Объекта DOM до сериализированной формы (Строка в этом случае). Как стандарт я имею в виду SUN Java XML API для обработки XML .

Другие альтернативы, такие как Xerces XMLSerializer или JDOM XMLOutputter являются более прямыми методами (меньше кода), но они являются определенными для платформы.

, По-моему, способ, которым Вы использовали, является самым изящным и самым портативным из всех. При помощи стандартного API Java XML можно включить XML-синтаксический-анализатор или XML-преобразователь по Вашему выбору, не изменяя код (то же как драйверы JDBC). Действительно ли там что-нибудь более изящно, чем это?

12
ответ дан Fernando Miguélez 24 November 2019 в 14:39
поделиться

Вы могли использовать XOM, чтобы, возможно, сделать это:

org.w3c.dom.Document domDocument = ...;
nu.xom.Document xomDocument = 
    nu.xom.converters.DOMConverter.convert(domDocument);
String xml = xomDocument.toXML();
8
ответ дан toolkit 24 November 2019 в 14:39
поделиться
Другие вопросы по тегам:

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