---
title: "Nollställd på xml ..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/xml/51162-nollställd-på-xml"
topic: "XML"
topic_url: "https://www.webforum.nu/amne/xml"
author: "UrMe"
published: "2002-08-24T09:01:55.000Z"
updated: "2003-03-13T21:19:23.000Z"
replies: 8
views: 741
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/xml/51162-nollställd-på-xml"
---

# Nollställd på xml ...

## #1 — UrMe, 2002-08-24T09:01Z

Kan man få ut informationen ur ett .xml dokument som ligger på en annan server? .. alltså detta är .xml filen: <http://www.camelot-europe.com/herald/nb_connected.xml>

Om vi säger att jag vill ha ut alla \<population\> går det att göra på nåt sätt? så att varje gång sidan laddas på min server så hämtar den info från den där xml-filen?

Eller måste jag använda php eller asp på nåt sätt?

\*En som fattar nada av xml men vill ha ut informationen\* :)

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

## #2 — jarvklo, 2002-08-26T15:50Z

Re: Nollställd på xml ...

> **UrMe skrev:**
>
> Kan man få ut informationen ur ett .xml dokument som ligger på en annan server?

Jupp. De flesta parsers kan hämta information mha en URL...

> **UrMe skrev:**
>
> Om vi säger att jag vill ha ut alla \<population\> går det att göra på nåt sätt? så att varje gång sidan laddas på min server så hämtar den info från den där xml-filen?
> 
> Eller måste jag använda php eller asp på nåt sätt?

Du \*kan\* använda client-side Javascript + MSXML om du vill, men det rekommenderas \*inte\* om du inte kan begränsa dig till besökare som kör MSIE6...  (visst - det funkar någorlunda i MSIE5 också, men buggarna är fler där !) 
Principen för hur du gör framgår av <http://www.webforum.nu/showthread.php?s=&threadid=41499>

Det är antagligen säkrare att använda PHP eller ASP.
PHP - se t.ex. <http://www.phpbuilder.com/columns/joe20000907.php3> (fopen skall kunna öppna filer via http också <http://www.php.net/manual/en/function.fopen.php>  )

ASP - Metoden "load" i MSXMLDOM kan hämta filer över nätet också - även om det kanske är bättre att använda XMLHTTP (sök på xmlhttp i ASP-forumet - där finns \*mycket\* info! )

Nä du väl hämtat filen kan du antingen hämta informationen programmässigt via t.ex. DOM (speciellt bra om du vill plocka ut värden för vidare bearbetning) eller också kan du transformera utseendet med XSLT om du bara vill visa upp informationen...

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

## #3 — UrMe, 2002-08-28T11:50Z

Just nu använder jag mig av fopen i php.. och det fungerar väl om man bara vill lista all information rätt upp och ner. Dock har jag lite problem att hämta specifik information.. t.ex bara 2 specifika taggar..

Men det som är målet är att kunna sortera informationen..

Den filen jag använder mig av är: <http://www.camelot-europe.com/herald/servers/Excalibur/guilds/147.xml>

Och så här långt har jag kommit: <http://www.urme.com/fellowship/members.php>

Problemet är att jag inte vet hur ska kunna t.ex sortera efter namn etc.

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

## #4 — jarvklo, 2002-08-28T15:50Z

Ok.
Antar att du kör liknande teknik som i PHPBuilder-exemplet...
Prova att modda characterData(), startelement() och endElement() till att  lägga in innehållet för de taggar du är intresserad av i olika globala arrayer i stället för att skapa HTML-taggar direkt.
Sortera sedan dessa parallelt med array_multisort() i den ordning du är intresserad och skapa HTML-koden genom att loopa genom arrayerna när hela parsningen är avslutad... (pust! - finns säkert smartare sätt också ;) )

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

## #5 — jarvklo, 2002-08-29T00:34Z

Exempel enligt föregående inläggs princip:
*Redigerad: Koden visade sig innehålla buggar, se nedan för korrekt kodexempel*

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

## #6 — UrMe, 2002-08-29T06:18Z

Ah.. tackar och bockar! det funkar ju utmärkt! detta kan jag bygga vidare på!

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

## #7 — UrMe, 2002-08-30T09:16Z

Bara en liten fundering...

Om vi säger att ett namn är "Johan's Hasd" ... då delar han upp det så här:
variabel1 = Johan
variabel2 = '
variabel3 = s Hasd

Hur löser man det på enklaste sättet?

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

## #8 — jarvklo, 2002-09-03T07:50Z

UrMe och Jag löste det hela efter diskussion i (PHP-) tråden <http://www.webforum.nu/showthread.php?s=&threadid=50703>

Så här blev den slutliga, fungerande,  exempelkoden:

```
<?php
function startElement($parser, $name, $attrs=''){
    global $current_tag, $current_index, $thenames; 
		    $current_tag = $name;
    switch($name){
        case 'CHARACTER':
		 	$thenames[$current_index]=$attrs['NAME'];
			$current_index+=1;
        break;
        default:
        break;
    }
}
function endElement($parser, $name, $attrs=''){
    global $current_tag, $current_index;
    switch($name){
        case 'RACE':
        case 'CLASS':
        case 'LEVEL':
		    $current_tag = "";
        break;
        default:
        break;
    }
}

function characterData($parser, $data){
    global $current_tag, $current_index, $therace, $theclass, $thelevel;
    switch($current_tag){
        case 'RACE':
			if (isset($therace[$current_index]))  {
				 $therace[$current_index].=$data;
			}
			else {
				 $therace[$current_index]=$data;
			}
		 break;
        case 'CLASS':
			if (isset($theclass[$current_index]))  {
				 $theclass[$current_index].=$data;
			}
			else {
				 $theclass[$current_index]=$data;
			}
		 break;
        case 'LEVEL':
			if (isset($thelevel[$current_index]))  {
				 $thelevel[$current_index].=$data;
			}
			else {
				 $thelevel[$current_index]=$data;
			}
		 break;
    default:
        break;
    }
}

$xml_file = 'http://www.camelot-europe.com/herald/servers/Excalibur/guilds/147.xml';
$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);

array_multisort ($thenames, SORT_STRING, $therace, $theclass, $thelevel);
 
echo '<table border="1">';
foreach ( $thenames as $key => $value ) {
	echo "<tr>";
	echo "<th align='left'>$value</th>";
	echo "<td>$therace[$key]</td>";
	echo "<td>$theclass[$key]</td>";
	echo "<td>$thelevel[$key]</td>";
	echo "</tr>\n";
}
echo'</table>';
?>
```

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

## #9 — fredrik99, 2003-03-13T21:19Z

Fel postat, sorry :)

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

---

Tråden på webben: https://www.webforum.nu/amne/xml/51162-nollställd-på-xml
