org.xml.sax.SAXParseException:prolog问题中不允许使用内容

时间:2013-02-08 10:49:58

标签: java xml

我正在尝试使用jasperreports,当我尝试运行我正在开发的应用程序时,我遇到了下一个错误:

        org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
    at es.uniway.principal.EnviarInfoPedido.infoPedido_Mayorista(EnviarInfoPedido.java:452)
    at es.uniway.principal.ObtenerProcesos.ejecutar(ObtenerProcesos.java:78)

    at es.uniway.principal.SincronizadorCloud.main(SincronizadorCloud.java:14)

对于我有这个代码,我写的是:

    xtw = xof.createXMLStreamWriter(new FileWriter(nombre_report+".xml"));

            //
           // xmlwriter.WriteStartDocument();

            xtw.writeStartDocument();

            // nodo 1
            xtw.writeStartElement("request");
            xtw.writeAttribute("operationName", "runReport");
            xtw.writeAttribute("locale", "es");
            // nodo 2
            xtw.writeStartElement("argument");
            xtw.writeAttribute("name","RUN_OUTPUT_FORMAT");
            xtw.writeCharacters(formato.trim().toUpperCase());
            xtw.writeEndElement();  // nodo 2
            // nodo 2
            xtw.writeStartElement("argument");
            xtw.writeAttribute("name","USE_DIME_ATTACHMENTS");
            xtw.writeCharacters("1");
            xtw.writeEndElement();  // nodo 2
            // nodo 3
            xtw.writeStartElement("resourceDescriptor");
            xtw.writeAttribute("name","");
            xtw.writeAttribute("wsType","");
            xtw.writeAttribute("uriString", CARPETA_REPORT + nombre_report.trim());
            xtw.writeAttribute("isNew", "false");

            //// nodo 4
            //xmlwriter.WriteStartElement("label", null);
            //xmlwriter.WriteEndElement(); // nodo 4  

            if (nombre_report == "LINEAS_DETALLE_COSTE" && id_albaran_coste.trim() != " ")
            {
                // para las líneas detalle coste teneos 2 parámetros:
                //   - NALNARANC --> albaran para calcular el descuento de coste
                //   - NALBARANV --> albaran para calcular el descuento de venta
                // parametro 1
                xtw.writeStartElement("parameter");
                xtw.writeAttribute("name", "NALBARANC");
                xtw.writeAttribute("class", "java.lang.Integer");
                xtw.writeCharacters(id_albaran_coste);
                xtw.writeEndElement(); // parametro 1

                // parametro 2
                xtw.writeStartElement("parameter");
                xtw.writeAttribute("name", "NALBARANV");
                xtw.writeAttribute("class", "java.lang.Integer");
                xtw.writeCharacters(id_albaran);
                xtw.writeEndElement(); // parametro 1
            }
            else
            {
                // parametro 1
                xtw.writeStartElement("parameter");
                xtw.writeAttribute("name", "NALBARAN");
                xtw.writeAttribute("class", "java.lang.Integer");
                xtw.writeCharacters(id_albaran);
                xtw.writeEndElement(); // parametro 1
            }



            xtw.writeEndDocument();
            xtw.flush();
            xtw.close();

出了什么问题?谢谢。 xml就是这个,我不知道出了什么问题:

<?xml version="1.0" ?> <request operationName="runReport" locale="es"> <argument name="RUN_OUTPUT_FORMAT"> CSV </argument> <argument name="USE_DIME_ATTACHMENTS"> 1</argument><resourceDescriptor name="" wsType="" uriString="/ICLDI/CABECERA_PEDIDO_CONTRATO" isNew="false"><parameter name="NALBARAN" class="java.lang.Integer">6658</parameter></resourceDescriptor></request>

再次感谢。

1 个答案:

答案 0 :(得分:0)

删除此处的空格:

<?xml version="1.0" ?> <request

它应该是这样的:

<?xml version="1.0" ?><request

其他问题可能是您在XML文件的最开头有一些不可见的额外字符,例如Byte-Order-Mark(也称为BOM)它表明UTF-16文件是高端或低端-endian。