---
title: "php/xml parser"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/16336-php-xml-parser"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "matthew"
published: "2001-11-17T16:19:00.000Z"
updated: "2001-11-19T22:42:00.000Z"
replies: 5
views: 375
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/16336-php-xml-parser"
---

# php/xml parser

## #1 — matthew, 2001-11-17T16:19Z

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

Permalänk: https://www.webforum.nu/p/16336

## #2 — SPiN, 2001-11-17T16:27Z

Det finns ett par som du kan kompilera in i PHP, eller i ditt fall avmarkera i php.ini.

Men eftersom att du kör på en W2k-burk skulle jag nog använda mig av ett COM-objekt mot Microsofts XMLDOM som är en mycket bra parser.

Annars kan du kolla [här](http://cgi.webforum.nu/wf/Forum12/HTML/001801.html) också.

Permalänk: https://www.webforum.nu/p/324922

## #3 — matthew, 2001-11-19T14:26Z

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

Permalänk: https://www.webforum.nu/p/324923

## #4 — ZreoX, 2001-11-19T15:26Z

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.

Permalänk: https://www.webforum.nu/p/324924

## #5 — SPiN, 2001-11-19T16:12Z

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? :q 

HTTP_POST_VARS\[\] är en global associativ array, läs mer i artikeln [här](http://www.phpportalen.net/information/artikel.php?id=16). Alltså, de variabler som datan från ett formulär lagras i.

Permalänk: https://www.webforum.nu/p/324925

## #6 — matthew, 2001-11-19T22:42Z

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

Permalänk: https://www.webforum.nu/p/324926

---

Tråden på webben: https://www.webforum.nu/amne/php/16336-php-xml-parser
