Может ли XmlSerializer использовать в объявлении двойные кавычки вместо одинарных?

Я использую Android XmlSerializer для создания файла .xml, который будет использоваться с библиотекой OpenCV (как способ ввода параметров для SimpleBlobDetector).

Проблема в том, что сгенерированный XML использует одинарные кавычки/апострофы ( ' ) в объявлении:

<?xml version='1.0' encoding='UTF-8' ?>

К сожалению, OpenCV не читает одинарные кавычки. Он читает только XML, который использует двойные кавычки ( " ), например:

<?xml version="1.0" encoding="UTF-8" ?>

Я попытался вручную изменить одинарные кавычки на двойные, и после этого файл заработал. Тем не менее, мне не представляется возможным делать это вручную все время.

Если это поможет, объявление является единственной частью файла .xml с какими-либо кавычками, но OpenCV требует объявления, поэтому я не могу просто опустить его. Я попытался вручную отредактировать объявление и обнаружил, что оно работает только с простым описанием:

<?xml ?>

Есть ли способ для XmlSerializer создать файл .xml с двойными кавычками вместо одинарных, как это делается в настоящее время? Если нет, есть ли способ удалить номер версии и кодировку?


Вот небольшой фрагмент моего кода, если это поможет:

        XmlSerializer xmlSerializer = Xml.newSerializer();
        xmlSerializer.setOutput(outputStream,"UTF-8");
        xmlSerializer.startDocument("UTF-8",null);
        xmlSerializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);


        //Begin filling in content
        xmlSerializer.startTag(null,"thresholdStep");
        xmlSerializer.text(Double.toString(thresholdStep));
        xmlSerializer.endTag(null,"thresholdStep");

        //End document
        xmlSerializer.endDocument();
        xmlSerializer.flush();

        //Close output stream
        outputStream.close();

person Jia Wei    schedule 23.12.2016    source источник
comment
Просто отбросьте метод startDocument() и напишите строку прямо в поток, который решает эту проблему для меня :-)   -  person Per Digre    schedule 02.12.2019


Ответы (1)


Мне удалось сгенерировать двойные кавычки, используя DOM вместо XmlSerializer, следуя этот пример.

Полученный XML-файл может быть прочитан OpenCV без каких-либо проблем.

person Jia Wei    schedule 27.12.2016