Jump to content
php.lv forumi

Iznest datus no XML


Roberts.R

Recommended Posts

Labrīt!

Esmu smagi nočakarējies, un tā patās neesmu nācis skaidrībā, kā ta īsti strādā tas XML :)

 

Tātad, cik tālu es esmu ticis...

 

<?$xml = '
<test>
   <ieraksts>Kaut kāds ieraksts</ieraksts>
   <ieraksts>Cits ieraksts</ieraksts>
</test>
';

?>

<?php
$obj = simplexml_load_string($xml);
print_r($obj);
?>

 

Kad izmantoju šādu variantu, tad it kā viss parādās, kā tam vajadzētu parādīties

 

SimpleXMLElement Object ( [ieraksts] => Array ( [0] => Kaut kāds ieraksts [1] => Cits ieraksts ) )

 

Bet, kad piemēram pamainu rindiņu:

$obj = simplexml_load_string($xml);

uz

$obj = simplexml_load_file('test.xml');

kur, test.xml fails satur, (un atrodas tajā paša mapītē, kur atrodas php fails)

<?xml version="1.0" encoding="UTF-8"?>
<test>
   <ieraksts>Kaut kāds ieraksts</ieraksts>
   <ieraksts>Cits ieraksts</ieraksts>
</test>

 

saņemu pretī ko šādu:

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "test.xml" in C:\web\htdocs\ms\page\sidebar.php on line 27

 

Es pilnīgi nespēju saprast, kas notiek, un kāpēc tā notiek.

 

Okey, jebkurā gadījumā, man ir uzdevums :)

Tātad, reku ir xml fails:

http://informer.gismeteo.ru/xml/26240_1.xml

, kurš man ir, protams, jānolasa un no tā man ir jāizdabū ārā info. Par to, kā tas notiekas, esmu iebraucis... Bet tagad galvenais ir saprast, kā notiekas faila ielādēšana.

Ja jūs varat uzrakstīt kaut pāris rindiņās, kā pareizi tas notiek, tas būtu baigi forši :)

 

Help here :) Paldies!

 

---

 

Okey, pagaidām pats tiku tik tālu, ka ar šādu paņēmienu:

   $xml = simplexml_load_file('http://informer.gismeteo.ru/xml/26240_1.xml');
   print_r($xml);

es dabonu ārā visu smuki arrayā.

 

Bet tad, kad es gribu piemēram dabūt ārā kaut ko atsevišķu, kā piemēram, atribūtu day:

   $xml = simplexml_load_file('http://informer.gismeteo.ru/xml/26240_1.xml');
   $test = $xml->MMWEATHER->REPORT->TOWN->FORECAST->attributes()->day;
   echo $test;

 

Tad pretī saņemu šito:

Fatal error: Call to a member function attributes() on a non-object in C:\web\htdocs\ms\page\sidebar.php on line 20

 

Diemžēl es nespēju saprast, ko šis fatal error mesidž grib man pateikt...

 

Paskaidrosiet?

Edited by Roberts.R
Link to comment
Share on other sites

<?php

 $xml = simplexml_load_file('http://informer.gismeteo.ru/xml/26240_1.xml');
 print_r($xml -> REPORT->TOWN->FORECAST->attributes()->day);

 

MWEATHER jau ir root elements, kas ir $xml, attiecīgi tev viņš vēlreiz nav jāaiztiek. Izmet to pa vidu ārā un viss ripo :)

Link to comment
Share on other sites

Ej dir... :D

Es jūtos diezgan stulbi :D:D

Apmēram 4as stundas gar šito krāmējos, un viss tomēr atrisināms tik elementārā ceļā :D

Paldies! :)

 

---

 

Vēl viens jautājums tomēr par šīm te pašām laika ziņām.

Tātad, datus iznest man izdevās, bet tagad piemēram, kā var uztaisīt, lai rādās arī bildīte ar saulīti, mākonīti vai mēnestiņu?

Oke, to principā var noteikt pēc pulksteņa laika, bet ja tomēr ir sniegs, lietus vai skaidrs laiks?

Visticamāk, ka tas notiek skatoties pēc šīs rindiņas:

<PHENOMENA cloudiness="0" precipitation="10" rpower="0" spower="0"/>

Tad sanāk ka pašam, kā teikt, ir jāsačinī ifi utt, lai dabūtu ārā to, ko vajag?

Edited by Roberts.R
Link to comment
Share on other sites

  • 5 months later...

<MMWEATHER>
−
<REPORT type="frc3">
−
<TOWN index="26422" sname="%D0%E8%E3%E0" latitude="56" longitude="38">
−
// sodienas diena
<FORECAST day="26" month="07" year="2010" hour="14" tod="2" predict="0" weekday="2">
<PHENOMENA cloudiness="2" precipitation="10" rpower="0" spower="0"/>
<PRESSURE max="756" min="754"/>
<TEMPERATURE max="31" min="29"/>
<WIND min="1" max="3" direction="3"/>
<RELWET max="45" min="43"/>
<HEAT min="27" max="29"/>
</FORECAST>
−
//sodienas vakars
<FORECAST day="26" month="07" year="2010" hour="20" tod="3" predict="0" weekday="2">
<PHENOMENA cloudiness="3" precipitation="10" rpower="0" spower="0"/>
<PRESSURE max="756" min="754"/>
<TEMPERATURE max="23" min="21"/>
<WIND min="2" max="4" direction="6"/>
<RELWET max="76" min="74"/>
<HEAT min="19" max="21"/>
</FORECAST>
−
// ritdienas nakts
<FORECAST day="27" month="07" year="2010" hour="02" tod="0" predict="0" weekday="3">
<PHENOMENA cloudiness="0" precipitation="10" rpower="0" spower="0"/>
<PRESSURE max="757" min="755"/>
<TEMPERATURE max="18" min="16"/>
<WIND min="0" max="2" direction="4"/>
<RELWET max="93" min="91"/>
<HEAT min="16" max="18"/>
</FORECAST>
−
// ritdienas rits
<FORECAST day="27" month="07" year="2010" hour="08" tod="1" predict="0" weekday="3">
<PHENOMENA cloudiness="1" precipitation="10" rpower="0" spower="0"/>
<PRESSURE max="759" min="757"/>
<TEMPERATURE max="24" min="22"/>
<WIND min="0" max="2" direction="7"/>
<RELWET max="71" min="69"/>
<HEAT min="21" max="23"/>
</FORECAST>
</TOWN>
</REPORT>
</MMWEATHER>

tad sanak, ka var dabut tikai info no sodienas?

Link to comment
Share on other sites

We have a serious anencephaly problem here.

 

nu ne jau man ir tas problemas. jautajums bija ka to lai izdara. tu atbildeji izparsejot xml failu. vareji iedot kadu piemeru ka lai dabun nakoso periodu ))

tikpat labi var atbildet ar "ej iemacies php" vai kaut ko tadu :D

Link to comment
Share on other sites

ka lai dabun nakoso periodu ))

....

tikpat labi var atbildet ar "ej iemacies php" vai kaut ko tadu :D

 

$wh = simplexml_load_file('http://informer.gismeteo.ru/xml/26422_1.xml');
$skait=0;
foreach ($wh->REPORT->TOWN->FORECAST as $fc) 
{ 

#####  temp parbaude ######3
$t_min=$fc->TEMPERATURE["min"];
if ($t_min< '-60' OR $t_min > '60')
{
$t_min='??';
}
$t_max=$fc->TEMPERATURE["max"];
if ($t_max< '-60' OR $t_max > '60')
{
$t_max='??';
}
$tempretura_y[$skait]=$t_min.' - '.$t_max.' C°';
#################
$tempretura[$skait]=$tempretura_y[$skait];
$skait++;
}

Un buus tev atseviskjis masivs ar tempreturu ...

 

parejos nu gan pats liec ...

 

UN MACIES PHP ... kaa no MASIVA dabuut araa datus ... pamatu pamats..

foreach()...

Edited by Grey_Wolf
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...