Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Błąd parsowania XML:śmieci po elemencie dokumentu

    /**
     *  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();
  • Zmieniono na MySQL do MySQLi ! Ważne jest, aby zacząć zmieniać się teraz, póki możesz! =)
  • Użyj funkcji! Piszesz $xml->startElement &$xml->endElement wielokrotnie umieszczał go w addNode() metoda.
  • Dodano „Korzeń ', aby dołączyć również każdy wiersz bazy danych.
  • Użyj CData (<![CDATA[text for inclusion within CData tags]]> ), pomoże bezpiecznie uciec przed trudnymi możliwymi postaciami


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql uzyskaj różnicę zamiast SUMA

  2. Podzapytanie ORDER BY dla konwersji GROUP BY na JOIN

  3. zaimportuj CSV do MySQL i przekonwertuj datę

  4. Sprawdź nakładanie się czasu w mysql

  5. Zamówienie i limit LEFT JOIN