Hej
Jag undrar vart jag kan hitta en xml parser för php, jag kör windows 2000.
Har laddat hem några men de verkar vara för C.
Vet inte om frågan är rätt formulerad.
Nån som vill hjälpa ?
Matt
5 svar · 375 visningar · startad av matthew
Hej
Jag undrar vart jag kan hitta en xml parser för php, jag kör windows 2000.
Har laddat hem några men de verkar vara för C.
Vet inte om frågan är rätt formulerad.
Nån som vill hjälpa ?
Matt
SPiN, Jag provade denna kod->
<?php
$foretag = $HTTP_POST_VARS['companyForetag'];
$land = $HTTP_POST_VARS['companyLand'];
$stad = $HTTP_POST_VARS['companyStad'];
$cntForetag = 0;
$cntLand = 0;
$cntStad = 0;
$xml = new Parser("foretag.xml");
$rot = $xml->getRoot();
$kids = $xml->getChildren($rot);
while($nodes = array_shift($kids)) {
if($foretag != "" && $xml->getContent($nodes, "namn") == $foretag) {
$arrForetag[$cntForetag]["foretagsnamn"] = $foretag;
$arrForetag[$cntForetag]["adress"] = $xml->getContent($nodes, "gatuadress") . ", " . $xml->getContent($nodes, "postadress");
$arrForetag[$cntForetag]["land"] = $xml->getContent($nodes, "land");
$arrForetag[$cntForetag]["telefonnummer"] = $xml->getContent($nodes, "telefonnummer");
$arrForetag[$cntForetag]["omraden"] = $xml->getContent($nodes, "omraden");
$arrForetag[$cntForetag]["person"] = $xml->getContent($nodes, "kontaktperson");
$email = $xml->getAttributeContent($nodes, "email");
$arrForetag[$cntForetag]["email"] = $email[0];
$cntForetag++;
}
}
?>
xml->
<?xml version="1.0" encoding="ISO-8859-1"?><BR><?xml-stylesheet href="foretag.xsl" type="text/xsl"?><BR>
<foretagslista><BR>
<foretag><BR>
<namn>Ett_företag</namn><BR>
<gatuadress>Företagsgatan 6</gatuadress><BR>
<postadress>123 45 Företagarberg</postadress><BR>
<land>Företagaristan</land><BR>
<telefonnummer>000-123123</telefonnummer><BR>
<omraden>IT_Nätverk, IT_Programmering, IT_Webdesign, IT_Mjukvarutillverkning</omraden><BR>
<kontaktperson email="personen@foretaget.se">Personen</kontaktperson><BR>
</foretag><BR>
</foretagslista><BR>
Warning: Undefined index: companyForetag in C:\Inetpub\wwwroot\php\xmlclass.php on line 8
Fatal error: Cannot instantiate non-existent class: parser in C:\Inetpub\wwwroot\php\xmlclass.php on line 14
Hur funkar HTTP_POST_VARS ?
Vad kan det vara för fel ?
/matt
Ditt problem ligger inte direkt i http_post_vars (som förresten är variebler som bestämt postats till sidan (dvs ej ex genom url:en)...
Ditt problem ligger snarare i att du inte har stöd för XML scriptet. Verkar ju sakna Parser klassen.
Jag har själv användt mig av en rätt hyffsad DOM modul till PHP, du behöver ställa in att du vill använda den som en "extension" i PHP:s ini fil.
Här är ett exempel du kan titta på: http://www.quickmess.com/kodarkivet/index.php?url=subcategory.php?katid=37
Jag skulle rekomendera dig att titta mer på Dokument Objekt Modellen eftersom den är rätt lätt att använda sig av.
Har du inkluderat filen där min klass ligger i ditt PHP-dokument? Verkar inte som det.
Du bör också ta bort alla <BR>-taggar i din XML-fil, då det är ogiltiga taggar... Varför har du lagt dit dom?
HTTP_POST_VARS[] är en global associativ array, läs mer i artikeln här. Alltså, de variabler som datan från ett formulär lagras i.
Tack för tipsen !!
Hade tagit bort <br> taggarna i xml filen.
Oj jag hade länkat parserclass filen fel !
Får nu detta fel->
Warning: Undefined variable: result in C:\Inetpub\wwwroot\php\parserclass.php on line 108
ERROR[Class: Parser] No data could be found in the node 'foretagslista>'
/matthew