---
title: "php och xml"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/65523-php-och-xml"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "icaaq"
published: "2003-01-20T12:24:53.000Z"
updated: "2003-01-22T21:17:41.000Z"
replies: 17
views: 729
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/65523-php-och-xml"
---

# php och xml

## #1 — icaaq, 2003-01-20T12:24Z

Jag kan inget om PHP :o så svara på detta inlägg precis så som ni ville ha svaret i början på eran PHP karriär ;)

Kan jag med PHP leta igenom en mapp med olika filer?

Om ja:
Skulle jag då kunna få se ett exempel på hur det skulle se ut.

mvh icaaq

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

## #2 — icaaq, 2003-01-20T12:33Z

Det skulle i ASP lÃ¶sas med:

```
[red]
object.FileExists(file)
[/red]
```

mvh icaaq

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

## #3 — icaaq, 2003-01-20T12:48Z

Strunta i ovanstÃ¥ende frÃ¥ga.....jag lÃ¶ser det pÃ¥ annat sÃ¤tt istÃ¤llet......

mvh icaaq

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

## #4 — jarvklo, 2003-01-20T13:18Z

Hmm..
Då blir det härt lite bonus då ;)

Ja det går.

I [manualen](http://www.php.net/manual/en/ref.filesystem.php) finns även exempelkod som verkar göra något i stil med det du är ute efter...

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

## #5 — icaaq, 2003-01-21T08:36Z

Jag återtupplivar denna tråd då rubriken stämmer överens med denna fråga.Jag har denna xml-fil:

```
[red]
<?xml version="1.0" encoding="utf-8" ?>
<master>
	<mast artikelnummer="7772030" url="/parkstolpar_varm.html" />
	<mast artikelnummer="7772031" url="/parkstolpar_kall.html" />
</master>[/red]
```

Och frågan lyder: Hur kan jag först och främst ta reda på om artikelnr finns i denna xml-fil? Finns artikelnr vill jag få ut det artikelnummrets url.

Nån som känner sig manad att hjälpa en nybörjare inom PHP?

mvh icaaq

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

## #6 — SPiN, 2003-01-21T09:13Z

Hur läser du dina XML-filer? Expat eller DOM, eller något annat?

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

## #7 — icaaq, 2003-01-21T09:17Z

Jag hittade ett exempel på PHPportalen, som såg ganska lätt ut.
<http://www.phpportalen.net/moduler.php?modul=artikel&id=22>

Jag tänkte använda den.....eller har du nån annan lösning som är lättare?

mvh icaaq

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

## #8 — icaaq, 2003-01-21T12:48Z

Jag har kommit en bit ....en väldigt liten bit men ändock en bit, frågan lyder nu 

```
[red]:

function parseXML() {

global $XML_data;

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "elementData");
xml_parse($xml_parser, $XML_data);
xml_parser_free($xml_parser);
}
[/red]
```

Hur får jag in min XML-fil i $XML_data ?

mvh icaaq

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

## #9 — icaaq, 2003-01-21T14:58Z

JAg hoppar mellan exemplena.....och har nu hittat xmlize() istÃ¤llet men jag fÃ¥r det inte att fungera xmlize() ser ut sÃ¥ hÃ¤r

```php
function xmlize($data) {

    $data = trim($data);
    $vals = $index = $array = array();
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $vals, $index);
    xml_parser_free($parser);

    $i = 0; 

    $tagname = $vals[$i]['tag'];
    if ( isset ($vals[$i]['attributes'] ) )
    {
        $array[$tagname]['@'] = $vals[$i]['attributes'];
    } else {
        $array[$tagname]['@'] = array();
    }

    $array[$tagname]["#"] = xml_depth($vals, $i);

    return $array;
}
```

och jag fÃ¶rsÃ¶ker anropa den sÃ¥ hÃ¤r:

```php
$file = "mast.xml";
'hÃ¤r nedanfÃ¶r kommer felet
$master xmlize($file);
```

men jag fÃ¥r:

Parse error: parse error in /docs/phptest/topp.php on line 161

hur ska jag gÃ¶ra?

fÃ¶r mer info om xmlize kolla hÃ¤r
<http://www.hansanderson.com/php/xml/>

mvh icaaq

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

## #10 — icaaq, 2003-01-21T17:26Z

Ã„r detta ett helt omÃ¶jligt problem eller Ã¤r det ett alldeles fÃ¶r lÃ¤tt problem?

mvh icaa

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

## #11 — jarvklo, 2003-01-21T19:13Z

Det är inte omöjligt, men det kräver lite eftertanke och en del kod...
Hav tålamod - någon kommer säkert ha tid att hjälpa dig inom snart!

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

## #12 — jarvklo, 2003-01-21T20:54Z

Här är en grundkod som kan användas för att ta reda på svaret till 

> Hur kan jag först och främst ta reda på om artikelnr finns i denna xml-fil? Finns artikelnr vill jag få ut det artikelnummrets url.

Vassego!
(antar data enligt <http://www.webforum.nu/showthread.php?s=&postid=539451#post539451> )

```php
<?php
function startElement($parser, $name, $attrs=''){
    global $artikelnummer,$current_tag;
    $current_tag=$name;
    switch($name){
        case 'MAST':
		 	$artikelnummer[$attrs['ARTIKELNUMMER']]=$attrs['URL'];
        break;
        default:
        break;
    }
}
function endElement($parser, $name, $attrs=''){
    global $current_tag;
    switch($name){
        default:
        break;
    }
}

function characterData($parser, $data){
    global $current_tag; 
    switch($current_tag){
    default:
        break;
    }
}

$xml_file = 'mast.xml'; // Du kan använda en URL här om du vill (och om din PHP-konfiguration tillåter;) 
$type = 'UTF-8';
$xml_parser = xml_parser_create($type);
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_parser_set_option($xml_parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
xml_set_element_handler($xml_parser, 'startElement','endElement');
xml_set_character_data_handler($xml_parser, 'characterData');

if (!($fp = fopen($xml_file, 'r'))) {
    die("Could not open $xml_file for parsing!\n");
}

$current_index=0;
while ($data = fread($fp, 4096)) {
    if (!($data = utf8_encode($data))) {
        echo 'ERROR'."\n";
    }
	if (!xml_parse($xml_parser, $data, feof($fp))) {
  		die("XML error".xml_error_string(xml_get_error_code($xml_parser)));
	}
}
xml_parser_free($xml_parser);

 
// Nu har du lagrat all info i array:en $artikelnummer.
// $artikelnummer[ett_nummer] = en_url

// Alla data i filen:
echo '<table border="1">';
foreach ( $artikelnummer as $key => $value ) {
	echo "<tr>";
	echo "<td>$key</td>";
	echo "<td>$value</td>";
	echo "</tr>\n";
}
echo'</table><hr>';

// Och ta reda på om ett visst artikelnummer finns:
$detduvillha = '7772031' ;
if ($artikelnummer[$detduvillha]) {
	echo "$detduvillha".' = "'."$artikelnummer[$detduvillha]".'"';
}
?>
```

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

## #13 — jarvklo, 2003-01-21T21:05Z

Jag är en slarvpelle - men \*nu\* stämmer koden iallafall :OO

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

## #14 — icaaq, 2003-01-22T10:31Z

jag får 
**XML errornot well-formed (invalid token)**
nu ser koden ut så här:
<http://member.webforum.nu/1029/test2.txt>

mvh icaaq

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

## #15 — icaaq, 2003-01-22T20:07Z

Det var min XML som f\[rr sig en snyting...nu funkar det.....

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

## #16 — jarvklo, 2003-01-22T20:16Z

\[redigerad\]
Jaha - du hade löst  problemet medan jag skrev att det nog var XML-filen på mitt som vanligt ganska omständiga vis  :e   :birp

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

## #17 — icaaq, 2003-01-22T20:54Z

Jag har ett litet problem bara, hur göra jag för att include:a URL:en?
på denna sektion menar jag:

```php
$detduvillha = '7772031' ;

if ($artikelnummer[$detduvillha]) {

//här vill jag include:a $detduvillhas URL    
echo "$detduvillha".' = "'."$artikelnummer[$detduvillha]".'"';

}
```

mvh icaaq

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

## #18 — jarvklo, 2003-01-22T21:17Z

Läs lite på <http://www.php.net/manual/en/features.remote-files.php> ;)

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

---

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