Helpers - компьютеры, интернет, программирование

предотвращение преобразования пустых элементов xml в самозакрывающиеся элементы

Я использую библиотеку Xerces для написания XML в документе. Для этого я использую класс OutputFormat, передающий объект OutputFormat в XMLSerializer. Но все мои пустые элементы xml преобразуются в самозакрывающиеся элементы xml.

Я хочу это:

<Company Name="Dummy">
</Company>

Но это похоже на

<Company Name="Dummy" />

Я пробовал ниже код:

try {
    //print
    OutputFormat format = new OutputFormat(dom,"iso-8859-1",true);          
    //to generate output to console use this serializer

    XMLSerializer serializer = new XMLSerializer(System.out, format);           
    serializer.serialize(dom);

} catch(IOException ie) {
        ie.printStackTrace();
}

Может ли кто-нибудь помочь мне в этом.

Спасибо,

31.08.2014

  • Просто из любопытства, почему бы вам не использовать сокращенный синтаксис? 31.08.2014
  • Готовы ли вы использовать другие библиотеки для решения проблемы? 31.08.2014
  • Вы можете посмотреть, как я решил эту проблему, используя XmlMapper Джексона и некоторую пользовательскую конфигурацию здесь: /а> 16.08.2019

Ответы:


1

Если вы хотите использовать другие API для решения проблемы, попробуйте следующее:

import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamWriter;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stax.StAXResult;

import org.w3c.dom.Document;

public class XmlWritter {

    public static void main(String[] args) throws Exception {
        Document doc = ...
        XMLStreamWriter writer = XMLOutputFactory.newFactory().createXMLStreamWriter(System.out);
        Transformer transformer = TransformerFactory.newInstance().newTransformer();
        transformer.transform(new DOMSource(doc), new StAXResult(writer));
    }

}
31.08.2014

2

Большинство сериализаторов, о которых я знаю, не позволяют вам выбирать, использовать или нет пустые теги элементов в выводе по той простой причине, что ни один здравомыслящий потребитель XML не заботится о том, используются они или нет. Если вам не все равно и вы не сошли с ума, было бы полезно объяснить, почему вас это волнует.

31.08.2014
Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..