sql >> Databasteknik >  >> RDS >> Mysql

XML-parserror:skräp efter dokumentelement

    /**
     *  Rewrite MySQL to MySQLi
     *  http://php.net/manual/en/migration55.deprecated.php
    **/
    $sql = "SELECT * FROM projecten ORDER BY id";
    $res = mysqli_query($sql);

    /**
     *  Adjusted startDoc to include
     *  Encoding and set Indent to tab
     *  instead of spacing.
    **/
    $xml = new XMLWriter();
    $xml->openURI("php://output");
    $Xml->setIndentString ( "	" );
    $Xml->startDocument( '1.0', 'UTF-8', 'no' );
    $xml->setIndent(true);

    /**
     *  Re-usable function to
     *  write a Start/End Element 
     *  to XMLWriter.
     *
     *  Uses CDdata for longer text strings
    **/
    function addNode( $xml, $NodeName, $Value ) {
        $xml->startElement( $NodeName );
        $xml->writeCData( $Value );
        $xml->endElement();      
    }

    /**
     *  Start a Root Element
    **/
   $xml->startElement('projects');

    /**
     *  LoopThrough each Database row.
    **/
   while ($row = mysqli_fetch_assoc($res)) {

        //START PROJECT
        $xml->startElement('project');
        $xml->writeAttribute('id', $row['id']);

            addNode( $xml, "Id", $row["id"] );
            addNode( $xml, "projectnaam", $row['projectnaam'] );
            addNode( $xml, "status", $row['status'] );
            addNode( $xml, "klantnaam", $row['klantnaam'] );
            addNode( $xml, "startdatum", $row['startdatum'] );
            addNode( $xml, "eindddatum", $row['eindddatum'] );

        //End 'Project'.
        $xml->endElement();
    }

    //End Root Element.
    $xml->endElement();

    //EINDE DOCUMENT
    $xml->endDocument(); 

    header('Content-type: text/xml');
    $xml->flush();
  • Ändrade till MySQL till MySQLi ! Det är viktigt att börja förändra nu medan du kan! =)
  • Använd funktioner! Du skriver $xml->startElement &$xml->endElement upprepade gånger, placerade den i en addNode() metod.
  • Har lagt till en 'Root ' för att lägga till varje databasrad också.
  • Använd CData ( ), kommer det att hjälpa till att på ett säkert sätt undkomma alla svåra möjliga tecken


  1. Hämtar SQLEXCEPTION-meddelande i MySQL-procedurer

  2. MySQL prestandaökning efter skapa &släpp index

  3. Vad är skillnaden mellan `->>` och `->` i Postgres SQL?

  4. Hur man får det aktuella datumet i MySQL