ColdFusion xml generation displays html tags

258 views Asked by At

In a part of my html page I get the request to generate xml document for download. I do it like this:

<cfoutput>
<cfsavecontent  variable="xml_podaci">

<PodaciPoreskeDeklaracije>

<PodaciOPrijavi>
<KlijentskaOznakaDeklaracije></KlijentskaOznakaDeklaracije>
<VrstaPrijave></VrstaPrijave>
<ObracunskiPeriod></ObracunskiPeriod>
<OznakaZaKonacnu></OznakaZaKonacnu>
<DatumNastankaPoreskeObaveze></DatumNastankaPoreskeObaveze>
<DatumPlacanja></DatumPlacanja>
<VrstaIzmene></VrstaIzmene>
<JIPD></JIPD>
<BrojResenja></BrojResenja>
<Osnov></Osnov>
<NajnizaOsnovica></NajnizaOsnovica>
</PodaciOPrijavi>

<PodaciOIsplatiocu>
<TipIsplatioca></TipIsplatioca>
<VrstaIdentifikatorIsplatioca></VrstaIdentifikatorIsplatioca>
<PoreskiIdentifikacioniBroj></PoreskiIdentifikacioniBroj>
<MesecniFondSati></MesecniFondSati>
<MaticniBrojisplatioca></MaticniBrojisplatioca>
<NazivPrezimeIme></NazivPrezimeIme>
<SedistePrebivaliste></SedistePrebivaliste>
<Telefon></Telefon>
<UlicaIBroj></UlicaIBroj>
<eMail></eMail>
</PodaciOIsplatiocu>

<DeklarisaniPrihodi>
<PodaciOPrihodima>
<RedniBroj></RedniBroj>
<VrstaIdentifikatoraPrimaoca></VrstaIdentifikatoraPrimaoca>
<IdentifikatorPrimaoca></IdentifikatorPrimaoca>
<Prezime></Prezime>
<Ime></Ime>
<OznakaPrebivalista></OznakaPrebivalista>
<SVP></SVP>
<BrojKalendarskihDana></BrojKalendarskihDana>
<BrojEfektivnihSati></BrojEfektivnihSati>
<Bruto></Bruto>
<OsnovicaPorez></OsnovicaPorez>
<Porez></Porez>
<OsnovicaDoprinosi></OsnovicaDoprinosi>
<PIO></PIO>
<ZDR></ZDR>
<NEZ></NEZ>
<PIOBen></PIOBen>
<DeklarisaniMFP>
<MFP>
<Oznaka></Oznaka>
<Vrednost></Vrednost>
</MFP>
</DeklarisaniMFP>

</PodaciOPrihodima>
</DeklarisaniPrihodi>
</PodaciPoreskeDeklaracije>
</cfsavecontent>

<cfset fajl_novi_naziv = "PPPPDPrijava.xml">
<cfheader name="Content-Disposition" value="attachment; filename=#fajl_novi_naziv#" />
<cfcontent type="application/xml;charset=utf-8">
#toString(xml_podaci)#
</cfoutput>

So I put all my xml in a variable and create a new xml attachment. This is what the output of the xml generated file looks like:

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

<PodaciOPrijavi>
<KlijentskaOznakaDeklaracije/>
<VrstaPrijave/>
<ObracunskiPeriod/>
<OznakaZaKonacnu/>
<DatumNastankaPoreskeObaveze/>
<DatumPlacanja/>
<VrstaIzmene/>
<JIPD/>
<BrojResenja/>
<Osnov/>
<NajnizaOsnovica/>
</PodaciOPrijavi>

<PodaciOIsplatiocu>
<TipIsplatioca/>
<VrstaIdentifikatorIsplatioca/>
<PoreskiIdentifikacioniBroj/>
<MesecniFondSati/>
<MaticniBrojisplatioca/>
<NazivPrezimeIme/>
<SedistePrebivaliste/>
<Telefon/>
<UlicaIBroj/>
<eMail/>
</PodaciOIsplatiocu>

<DeklarisaniPrihodi>
<PodaciOPrihodima>
<RedniBroj/>
<VrstaIdentifikatoraPrimaoca/>
<IdentifikatorPrimaoca/>
<Prezime/>
<Ime/>
<OznakaPrebivalista/>
<SVP/>
<BrojKalendarskihDana/>
<BrojEfektivnihSati/>
<Bruto/>
<OsnovicaPorez/>
<Porez/>
<OsnovicaDoprinosi/>
<PIO/>
<ZDR/>
<NEZ/>
<PIOBen/>
<DeklarisaniMFP>
<MFP>
<Oznaka/>
<Vrednost/>
</MFP>
</DeklarisaniMFP>

</PodaciOPrihodima>
</DeklarisaniPrihodi>
</PodaciPoreskeDeklaracije> </td>
                </tr>
                </table>

</body>
</html>

The problem is in html tags

</td>
                    </tr>
                    </table>

    </body>
    </html>

that are still present in xml , how do I remove them ?

2

There are 2 answers

6
Tomalak On BEST ANSWER

First off, you should use <cfxml>, not <cfsavecontent>. This way you will get a server error when you try to build an invalid XML document.

Next, the sample code you show can never include HTML tags. This means your sample code is not what you really have. You should improve your question.

Also: Indent your code.

<cfxml variable="xml_podaci" casesensitive="yes">
  <PodaciPoreskeDeklaracije>
    <PodaciOPrijavi>
      <KlijentskaOznakaDeklaracije />
      <VrstaPrijave />
      <ObracunskiPeriod />
      <OznakaZaKonacnu />
      <DatumNastankaPoreskeObaveze />
      <DatumPlacanja />
      <VrstaIzmene />
      <JIPD />
      <BrojResenja />
      <Osnov />
      <NajnizaOsnovica />
    </PodaciOPrijavi>
    <!-- ... -->
  </PodaciPoreskeDeklaracije>
</cfxml>

<cfset fajl_novi_naziv = "PPPPDPrijava.xml">
<cfheader name="Content-Disposition" value="attachment; filename=#fajl_novi_naziv#" />
<cfcontent type="application/xml;charset=utf-8" /><cfoutput>#xml_podaci#</cfoutput>
0
Jovo Krneta On

At the end what I did is

<cfoutput>
<cfxml   variable="xml_podaci">
<PodaciPoreskeDeklaracije>
<PodaciOPrijavi>
<KlijentskaOznakaDeklaracije></KlijentskaOznakaDeklaracije>
<VrstaPrijave></VrstaPrijave>
<ObracunskiPeriod></ObracunskiPeriod>
<OznakaZaKonacnu></OznakaZaKonacnu>
<DatumNastankaPoreskeObaveze></DatumNastankaPoreskeObaveze>
<DatumPlacanja></DatumPlacanja>
<VrstaIzmene></VrstaIzmene>
<JIPD></JIPD>
<BrojResenja></BrojResenja>
<Osnov></Osnov>
<NajnizaOsnovica></NajnizaOsnovica>
</PodaciOPrijavi>
<PodaciOIsplatiocu>
<TipIsplatioca></TipIsplatioca>
<VrstaIdentifikatorIsplatioca></VrstaIdentifikatorIsplatioca>
<PoreskiIdentifikacioniBroj></PoreskiIdentifikacioniBroj>
<MesecniFondSati></MesecniFondSati>
<MaticniBrojisplatioca></MaticniBrojisplatioca>
<NazivPrezimeIme></NazivPrezimeIme>
<SedistePrebivaliste></SedistePrebivaliste>
<Telefon></Telefon>
<UlicaIBroj></UlicaIBroj>
<eMail></eMail>
</PodaciOIsplatiocu>
<DeklarisaniPrihodi>
<PodaciOPrihodima>
<RedniBroj></RedniBroj>
<VrstaIdentifikatoraPrimaoca></VrstaIdentifikatoraPrimaoca>
<IdentifikatorPrimaoca></IdentifikatorPrimaoca>
<Prezime></Prezime>
<Ime></Ime>
<OznakaPrebivalista></OznakaPrebivalista>
<SVP></SVP>
<BrojKalendarskihDana></BrojKalendarskihDana>
<BrojEfektivnihSati></BrojEfektivnihSati>
<Bruto></Bruto>
<OsnovicaPorez></OsnovicaPorez>
<Porez></Porez>
<OsnovicaDoprinosi></OsnovicaDoprinosi>
<PIO></PIO>
<ZDR></ZDR>
<NEZ></NEZ>
<PIOBen></PIOBen>
<DeklarisaniMFP>
<MFP>
<Oznaka></Oznaka>
<Vrednost></Vrednost>
</MFP>
</DeklarisaniMFP>
</PodaciOPrihodima>
</DeklarisaniPrihodi>
<Kamata>
<Porez></Porez>
<PIO></PIO>
<ZDR></ZDR>
<NEZ></NEZ>
<PIOBen></PIOBen>
</Kamata>
</PodaciPoreskeDeklaracije>
</cfxml>

<cfset fajl_novi_naziv = "PPPPDPrijava.xml">
<cffile action="write" file="#expandpath('./PPPPDPrijava.xml')#" output="#xml_podaci#"/>

<script type="text/javascript">
alert("XML generated on location : #expandpath('./PPPPDPrijava.xml')#");
</script>

</cfoutput>

Since I couldn't find a way to avoid html tags when generating xml file as attachment I decided to write a file on server and latter offer a link for that file ...since the app is used by one person...