1 Reply Latest reply on Jun 29, 2007 11:41 AM by Newsgroup_User

    Removing the XML declaration

    fx910
      (I accidentally posted this to the Getting Started forum - apologies for the duplication.)

      I am setting up a CMS that will take articles stored in XML and insert them into the middle of a predefined HTML page. The concept is essentially as per the appended code.

      However, this causes two problems: first, the XML declaration is outputted. Second, it outputs the <content></content> tags.

      It is possible to overcome this by converting the XML to text with the toString() function then doing a find and replace, but that seems so messy.

      Does anyone have any ideas of how to use native CF functions to return only the contents - tags and all - of an XML structure, but without the XML declaration or parent tag?

        • 1. Re: Removing the XML declaration
          Level 7
          Does anyone have any ideas of how to use native CF functions to return
          only the contents - tags and all - of an XML structure, but without the
          XML declaration or parent tag?


          If I understand your requirement correctly, I would probably just use
          the CFML xmlTransform() function to process the XML data with an XSLT
          string to return the formated data that I wanted to output.

          This should give you an idea of what I'm talking about.

          <cfsavecontent variable="someXSLT">
          <?xml version="1.0" encoding="iso-8859-1"?><!--
          DWXMLSource="../../../ColdFusion/playground/test.xml" --><!DOCTYPE
          xsl:stylesheet [
          <!ENTITY nbsp "&#160;">
          <!ENTITY copy "&#169;">
          <!ENTITY reg "&#174;">
          <!ENTITY trade "&#8482;">
          <!ENTITY mdash "&#8212;">
          <!ENTITY ldquo "&#8220;">
          <!ENTITY rdquo "&#8221;">
          <!ENTITY pound "&#163;">
          <!ENTITY yen "&#165;">
          <!ENTITY euro "&#8364;">
          ]>
          <xsl:stylesheet version="1.0"
          xmlns:xsl=" http://www.w3.org/1999/XSL/Transform">
          <xsl:output method="html" encoding="iso-8859-1"
          doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
          doctype-system=" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>

          <xsl:template match="/article/content">
          <xsl:copy-of select="."/>
          </xsl:template>
          </xsl:stylesheet></cfsavecontent>

          <cfset outputString = xmlTransform(xmlDate,someXSLT)>