XmlSerializer可以在声明中使用双引号而不是单引号吗?

时间:2016-12-23 07:59:09

标签: java android xml opencv opencv4android

我正在使用Android的XmlSerializer来生成一个与OpenCV库一起使用的.xml文件(作为输入SimpleBlobDetector参数的方法)。

问题是生成的XML在声明中使用单引号/撇号('):

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

不幸的是,OpenCV没有读取单引号。它只读取使用双引号(&#34;)的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();

1 个答案:

答案 0 :(得分:0)

我设法在this example之后使用DOM而不是XmlSerializer生成双引号。

然后,OpenCV可以毫不费力地读取生成的xml文件。