Springen naar inhoud


- - - - -
Solved

Php Naar Xml Probleem Indien Rare Tekens Bevat.

php xml tekens sql

  • Log in a.u.b. om te beantwoorden
Er zijn 4 reacties in dit onderwerp

#1 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 09 juli 2013 - 14:36

Ik maak gebruik van php om data vanuit een sql te lezen en deze dan om te zetten naar xml om van daaruit te gaan naar vb.net.
Nu als ik een table inlees met bv alleen mail adressen is niets aan de hand, dit word perfect gelezen.
Maar wil ik een table inlezen die buiten het @ teken nog meer vreemde tekens bevat, krijg ik de melding.: XML-parsefout: onjuist gevormd
Ik had ook al in de code UTF-8 aangepast naar Latin omdat het in die db ook staan maar bleef dezelfde melding.

Iemand enig idee?

PHP Code:
<?php
//database configuratie
include('../conf_global.php');

$config['db_name']	= "xxxxxxxxxx";
$config['table_name'] = "xxxxxxxxxx";

//connect to host
mysql_connect($INFO['sql_host'],$INFO['sql_user'],$INFO['sql_pass']);
//select database
@mysql_select_db($config['db_name']) or die( "Unable to select database");

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

	//select all items in table
$sql = "SELECT * FROM ".$config['table_name'];

$result = mysql_query($sql);
if (!$result) {
	die('Invalid query: ' . mysql_error());
}

if(mysql_num_rows($result)>0)
{
while($result_array = mysql_fetch_assoc($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;
?>




#2 guest_ingrid_*

guest_ingrid_*
  • Gasten
    Laatst bezocht

Geplaatst op 09 juli 2013 - 15:11

Normaal gesproken zou de cdata tag dat moeten verhelpen.
Helpt dit:

Code:
$xml .= "<![CDATA[" . $value . "]]>";


Kun je anders aangeven om wat voor 'vreemde tekens' het gaat. Eventueel zou html_encode() nog een oplossing kunnen geven. Of htmlspecialchars().

#3 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 09 juli 2013 - 16:05

Bericht bekijkeningrid, op 09 juli 2013 - 15:11, zei:

Normaal gesproken zou de cdata tag dat moeten verhelpen.
Helpt dit:

Code:
$xml .= "<![CDATA[" . $value . "]]>";



Dat had ik ook verwacht , maar schijnbaar niet.
Waar wil je dat ik die vervang cq plaats op welke regel , om te testen?

Groeten Pascal.

#4 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 09 juli 2013 - 17:42

Aanvulling voor je Ingrid.
Als ik html_encode() gebruik krijg ik als fout.: XML-parsefout: ongedefinieerde entiteit en bij htmlspecialchars() krijg ik weer XML-parsefout: onjuist gevormd

#5 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 4369 berichten
    Laatst bezocht 08 mei 2018 10:28
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 10 juli 2013 - 04:39

Probleem opgelost , heb alleen de kolommen genomen die ik moest hebben en dat werkte wel gewoon.





Ook met taq Solved, php, xml, tekens, sql voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[Solved] Untitled 1

Met dank aan J├╝rgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)