2015-11-01 24 views
2

У меня есть ошибка:Согласование цели обработки команды "[xX] [mM] [lL]" не допускается. Ошибка XML

Error Parsing /WEB-INF/includes/VerDatosProyeccion.xhtml: Error Traced[line: 4302] The processing instruction target matching "[xX][mM][lL]" is not allowed.

Я использую код же кода: http://jsfiddle.net/qxLn3h86/. Я вырезал код и прошёл в свой код.

Мой код выглядит следующим образом:

 <table id="tbl1"> 


<tr> 
    <td>Name</td> 
    <td>Birthday</td> 
    <td>Amount</td> 
    <td>Rebate (10%)</td> 
    </tr> 
    <tr> 
    <td>Smith</td> 
    <td data-type="DateTime" data-style="Date" data-value="1980-03-23">Mar 23 1980</td> 
    <td data-type="Number" data-style="Currency" data-value="1234.56">$ 1,234.56</td> 
    <td data-formula="=RC[-1]/10" data-type="Number" data-style="Currency">$ 123.45</td> 
    </tr> 
    <tr> 
    <td>Doe</td> 
    <td data-type="DateTime" data-style="Date" data-value="1978-11-05">Nov 05 1978</td> 
    <td data-type="Number" data-style="Currency" data-value="2345.67">$ 2,345.67</td> 
    <td data-formula="=RC[-1]/10" data-type="Number" data-style="Currency">$ 234.56</td> 
    </tr> 
</table> 

<table id="tbl2"> 
    <tr> 
    <td>Product</td> 
    <td>Price</td> 
    <td>Available</td> 
    <td>Count</td> 
    </tr> 
    <tr> 
    <td>Bred</td> 
    <td data-type="Number" data-style="Currency" data-value="1.89">$ 1.89</td> 
    <td data-type="Boolean" data-value="1">yes</td> 
    <td data-type="Number" data-value="123">123</td> 
    </tr> 
    <tr> 
    <td>Butter</td> 
    <td data-type="Number" data-style="Currency" data-value=".89">$ .89</td> 
    <td data-type="Boolean" data-value="0">no</td> 
    <td data-type="Number" data-value="0">0</td> 
    </tr> 
</table> 


      <button onclick="tablesToExcel(['tbl1','tbl2'], ['Customers','Products'], 'TestBook.xls', 'Excel')">Export to Excel</button> 

</h:panelGroup> 


<script> 
    function exportarExcel(){ 
     $("#tableProyeccion").table2excel({ 
      exclude: ".excludeThisClass", 
      name: "Worksheet Name", 
      filename: "Proyeccion" //do not include extension 
     }); 
    } 
    </script> 
<script> 
    var tablesToExcel = (function() { 
     var uri = 'data:application/vnd.ms-excel;base64,' 
     , tmplWorkbookXML ='<?xml version="1.0"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">' 
      + '<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"><Author>Axel Richter</Author><Created>{created}</Created></DocumentProperties>' 
      + '<Styles>' 
      + '<Style ss:ID="Currency"><NumberFormat ss:Format="Currency"></NumberFormat></Style>' 
      + '<Style ss:ID="Date"><NumberFormat ss:Format="Medium Date"></NumberFormat></Style>' 
      + '</Styles>' 
      + '{worksheets}</Workbook>' 
     , tmplWorksheetXML = '<Worksheet ss:Name="{nameWS}"><Table>{rows}</Table></Worksheet>' 
     , tmplCellXML = '<Cell{attributeStyleID}{attributeFormula}><Data ss:Type="{nameType}">{data}</Data></Cell>' 
     , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) } 
     , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) } 
     return function(tables, wsnames, wbname, appname) { 
      var ctx = ""; 
      var workbookXML = ""; 
      var worksheetsXML = ""; 
      var rowsXML = ""; 

      for (var i = 0; i < tables.length; i++) { 
      if (!tables[i].nodeType) tables[i] = document.getElementById(tables[i]); 
      for (var j = 0; j < tables[i].rows.length; j++) { 
       rowsXML += '<Row>' 
       for (var k = 0; k < tables[i].rows[j].cells.length; k++) { 
       var dataType = tables[i].rows[j].cells[k].getAttribute("data-type"); 
       var dataStyle = tables[i].rows[j].cells[k].getAttribute("data-style"); 
       var dataValue = tables[i].rows[j].cells[k].getAttribute("data-value"); 
       dataValue = (dataValue)?dataValue:tables[i].rows[j].cells[k].innerHTML; 
       var dataFormula = tables[i].rows[j].cells[k].getAttribute("data-formula"); 
       dataFormula = (dataFormula)?dataFormula:(appname=='Calc' && dataType=='DateTime')?dataValue:null; 
       ctx = { attributeStyleID: (dataStyle=='Currency' || dataStyle=='Date')?' ss:StyleID="'+dataStyle+'"':'' 
         , nameType: (dataType=='Number' || dataType=='DateTime' || dataType=='Boolean' || dataType=='Error')?dataType:'String' 
         , data: (dataFormula)?'':dataValue 
         , attributeFormula: (dataFormula)?' ss:Formula="'+dataFormula+'"':'' 
         }; 
       rowsXML += format(tmplCellXML, ctx); 
       } 
       rowsXML += '</Row>' 
      } 
      ctx = {rows: rowsXML, nameWS: wsnames[i] || 'Sheet' + i}; 
      worksheetsXML += format(tmplWorksheetXML, ctx); 
      rowsXML = ""; 
      } 

      ctx = {created: (new Date()).getTime(), worksheets: worksheetsXML}; 
      workbookXML = format(tmplWorkbookXML, ctx); 

    console.log(workbookXML); 

      var link = document.createElement("A"); 
      link.href = uri + base64(workbookXML); 
      link.download = wbname || 'Workbook.xls'; 
      link.target = '_blank'; 
      document.body.appendChild(link); 
      link.click(); 
      document.body.removeChild(link); 
     } 
     })(); 

</script> 
+0

Возможного дубликат [Error: Мишень инструкции обработки соответствия «\ [оГо \] \ [мМ \] \ [ lL \] "не разрешено] (http://stackoverflow.com/questions/19889132/error-the-processing-instruction-target-matching-xxmmll-is-not-allowed) – usr2564301

ответ

0

Попытка оборачивать свой код в script с CDATA:

<script> 
//<![CDATA[ 
    ...code containing XML declaration (`<?xml version="1.0"?>`) 
//]]> 
</script> 

так, что декларация XML не интерпретируется как часть ограждающей документа. Объявления XML могут отображаться только на самом верху документа XML (и может быть только один из них максимум).

Если это не решит проблему, проверьте, где вы выводите декларацию XML. Убедитесь, что перед объявлением XML нет видимого или невидимого содержимого, и убедитесь, что в выводе нет нескольких объявлений XML. Для получения более подробной информации см:

+2

Anonymous downvoter: обратите внимание на то, почему вы чувствуете, что этот ответ не полезен? – kjhughes

+1

Спасибо, это работает! –

 Смежные вопросы

  • Нет связанных вопросов^_^