---
title: "Hjälp med simplexml och PHP"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/184401-hjälp-med-simplexml-och-php"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "lejzer"
published: "2010-08-18T19:48:49.000Z"
updated: "2010-08-31T14:01:09.000Z"
replies: 4
views: 548
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/184401-hjälp-med-simplexml-och-php"
---

# Hjälp med simplexml och PHP

## #1 — lejzer, 2010-08-18T19:48Z

Hej,

Har lite problem med att försöka läsa ut information från en XML-fil. Jag läser in filen på följande sätt, men vet inte riktigt hur jag ska skriva för att få en post från xml-filen. Jag vill inte loopa ut informationen, utan bara ha en specifik post.

Så här läser jag in filen:

$filename = 'http://domän.se/fil.xml';  
$xml = simplexml_load_file($filename);       

echo $xml = men sen?

Exempel från XML-filen nedan:

\<meteohub\>
  \<config\>
  \</config\>
  \<data timeframe="actual"\>
    \<item sensor="date0" cat="date" unit="utc"\>20100818185152\</item\>
    \<item sensor="date0" cat="date2" unit="utc"\>18.08.2010 18:51:52\</item\>
    \<item sensor="date0" cat="puredate" unit="utc"\>18.08.2010\</item\>
    \<item sensor="date0" cat="time" unit="utc"\>18:51:52\</item\>
    \<item sensor="date0" cat="year" unit="utc"\>2010\</item\>
    \<item sensor="date0" cat="month" unit="utc"\>08\</item\>
    \<item sensor="date0" cat="day" unit="utc"\>18\</item\>
    \<item sensor="date0" cat="dayofweek" unit="utc"\>3\</item\>
    \<item sensor="date0" cat="hour" unit="utc"\>18\</item\>
    \<item sensor="date0" cat="min" unit="utc"\>51\</item\>
    \<item sensor="date0" cat="sec" unit="utc"\>52\</item\>
    \<item sensor="date0" cat="date" unit="local"\>20100818205152\</item\>
    \<item sensor="date0" cat="date2" unit="local"\>18.08.2010 20:51:52\</item\>
    \<item sensor="date0" cat="puredate" unit="local"\>18.08.2010\</item\>
    \<item sensor="date0" cat="time" unit="local"\>20:51:52\</item\>
    \<item sensor="date0" cat="year" unit="local"\>2010\</item\>

JAg vill exempelvis ha ut info från följande rad:

\<item sensor="date0" cat="min"

Tacksam för hjälp.

Mvh

Martin

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

## #2 — SPiN, 2010-08-18T20:05Z

Då är det XPath du ska använda.

```php
$xml    = simplexml_load_file("http://www.domän.se/fil.xml");
$result = $xml->xpath("/meteohub/data/item[@cat='min']");
var_dump($result);
```

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

## #3 — lejzer, 2010-08-18T20:18Z

Tack för snabbt svar. Dessvärre fick jag inte ut något värde. Kan tillägga att XML:en ser ut så här fortsättningsvis:

\<meteohub\>
  \<config\>
  \</config\>
  **\<data timeframe="actual"\>**
    \<item sensor="date0" cat="date" unit="utc"\>20100818185152\</item\>
    \<item sensor="date0" cat="date2" unit="utc"\>18.08.2010 18:51:52\</item\>
    \</data\>
  **\<data timeframe="alltime"\>**
    \<item sensor="date0" cat="date" unit="utc"\>20100818024935\</item\>
    \<item sensor="date0" cat="date" unit="local"\>20100818044935\</item\>
    \<item sensor="rain0" cat="rate" unit="mm"\>0.1\</item\>
    \<item sensor="rain0" cat="rate" unit="in"\>0.01\</item\>

Jag vill alltså få ut värdet 20100818185152 från date0-\>date (actual)
Samt 20100818024935 från date0-\>date (alltime)

Bör inte xpath:en ha med 'actual' eller 'alltime' för att hitta rätt? Hur ser det ut isåfall?

Tack på förhand.

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

## #4 — SPiN, 2010-08-18T22:59Z

Jo, man måste specificera djupet - men det framgick inte av din ursprungliga struktur!

```php
$xml      = simplexml_load_file("http://www.domän.se/fil.xml"); 
$result_1 = $xml->xpath("/meteohub/data[@timeframe='actual']/item[@sensor='date0' and @cat='min' and @unit='utc']");
$result_2 = $xml->xpath("/meteohub/data[@timeframe='alltime']/item[@sensor='date0' and @cat='date' and @unit='utc']");
...
```

Borde fungera. Om inte operatorn 'and' fungerar, försök med '&' istället - jag är osäker på hur väl SimpleXML hanterar/klarar av dessa XPath-uttryck.

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

## #5 — lejzer, 2010-08-31T14:01Z

Dessvärre fick jag aldrig det att fungera. Valde till slut att skapa en helt ny XML med de värde jag ville få ut för att göra processen enklare.

Tack ändå!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/184401-hjälp-med-simplexml-och-php
