2017-02-15 1 views
0

Wenn ich den XML-Ausgang echo ich bekomme den Fehler im Titel. Was habe ich vergessen? Ist das öffnende Tag nicht richtig? Ich hoffe, dass mir jemand mit diesem Code helfen kann.XML-Ausgabe: Ein Name wurde mit einem ungültigen Zeichen gestartet

folgte ich den Anweisungen von der Website http://www.mightywebdeveloper.com/coding/mysql-to-xml-php/

Thanx im Voraus.

<?php 



$config['table_name'] = "tblPortalStatus"; 
//database configuration 
$serverName = "servername"; 
$connectionInfo = array(all info here); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 



$sql = "SELECT * FROM tblPortalStatus"; 

$params = array(); 
$options = array("Scrollable" => SQLSRV_CURSOR_KEYSET); 

$result = sqlsrv_query($conn, $sql, $params,$options);  




$xml   = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; 
$root_element = $config['table_name']."s"; //tblPortalStatus 
$xml   .= "<$root_element>"; 



if (!sqlsrv_num_rows($result)) { 
    die('Invalid query: ' . sqlsrv_error()); 
} 

if(sqlsrv_num_rows($result)>0) 
{ 
    while($result_array = sqlsrv_fetch_array($result)) 
    { 
     $xml .= "<".$config['table_name'].">"; 

     //loop through each key,value pair in row 
     foreach($result_array as $key => $value) 
     { 
     //$key holds the table column name 
     $xml .= "<$key>"; 

     //embed the SQL data in a CDATA element to avoid XML entity issues 
     $xml .= "<![CDATA[$value]]>"; 

     //and close the element 
     $xml .= "</$key>"; 
     } 

     $xml.= "</".$config['table_name'].">"; 
    } 
}  


//close the root element 
$xml .= "</$root_element>"; 

//send the xml header to the browser 
header ("Content-Type:text/xml"); 

//output the XML data 
echo $xml; 
?> 



The XML page cannot be displayed 
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later. 


-------------------------------------------------------------------------------- 

A name was started with an invalid character. Error processing resource 'http://PHP/Form.php'. Line 37, ... 

<?xml version="1.0" encoding="UTF-8"?><tblPortalStatuss><tblPortalStatus><0><![CDATA[EPRC]]>&l... 

Antwort

0

Verwenden Sie eine XML API wie XMLWriter oder DOM, um das XML zu generieren. Dies wird die meisten (aber nicht alle) Probleme vermeiden. Möglicherweise müssen Sie Feldnamen vor der Verwendung als Tag-Namen normalisieren, Felder können Zeichen (wie Leerzeichen) enthalten, die in Tag-Namen nicht zulässig sind.

Wenn Sie eine API verwenden, sollten Sie auch viel bessere Fehlermeldungen erhalten.

Verwandte Themen