Skocz do zawartości

Jak sparsować ten plik XML?


Arent

Rekomendowane odpowiedzi

zrobiłem na podstawie tego podobnego http://www.php.rk.edu.pl/w/p/simplexml/

 

ale wziąż mam puste pola

 

<?

$xml = simplexml_load_file('plik.xml');

$plik = $xml->xpath('/*/*');

 

foreach ($xml as $plik) {

$ID = iconv("ISO-8859-1","UTF-8", $item['X']);

$E = iconv("ISO-8859-1","UTF-8", $item['E']);

$DATE = iconv("ISO-8859-1","UTF-8", $item['DATE']);

 

echo "

1: $X<br />

2: $E<br />

3: $DATE<br />

";

}

?>

Odnośnik do komentarza
Udostępnij na innych stronach

Nie umiesz korzystać z foreach. Gnysek nie patrzy się na zmienne ;)

<?
$xml = simplexml_load_file('plik.xml');
$plik = $xml->xpath('/*/*');

foreach ($plik as $item) {
$X = iconv("ISO-8859-1","UTF-8", $item['X']);
$E = iconv("ISO-8859-1","UTF-8", $item['E']);
$DATE = iconv("ISO-8859-1","UTF-8", $item['DATE']);

echo "
1: $X<br />
2: $E<br />
3: $DATE<br />
";
}
?>

EDIT: Faktycznie, nie zauważyłem jeszcze jednej zmiennej.

Odnośnik do komentarza
Udostępnij na innych stronach

tresc xml jest taka

 

<?xml version="1.0"?>

<DOCUMENT STATUS="OK">

<DATA>

<ITEM name="NAME" A="4219" ID="1" DATE="17-09-2008 11:28:00" X="300" B="4202" C="4213" D="1421" E="4206" STATUS="F" />

</DATA>

</DOCUMENT>

 

teraz nie mam mozliwosci sprawdzenia kodu

Odnośnik do komentarza
Udostępnij na innych stronach

Arent, daj mi kod XML i powiedz jaki chcesz efekt uzyskać.

 

EDIT:

Dobra przeczytałem temat i napisałem:

<?php
$xml = simplexml_load_file( 'document.xml' );
foreach( $xml->DATA->ITEM as $item )
{
    echo 'name = ' . $item['name'] .'<br />';
    echo 'A = ' . $item['A'] .'<br />';
    echo 'ID = ' . $item['ID'] .'<br />';
    echo '---------<br />';
}
?>

W sumie to nie wiem w czym mieliście problem. o.0

Odnośnik do komentarza
Udostępnij na innych stronach

OK działa :lol: dzięki

 

Tyle że pierwotnie chodziło mi o XML z większą liczbą rekordów, np. następujący plik XML

 

<?xml version="1.0"?>

<DOCUMENT STATUS="OK">

<DATA>

<ITEM name="NAME" A="4219" ID="1" DATE="17-09-2008 11:28:00" X="300" B="4202" C="4213" D="1421" E="4206" STATUS="F" />

<ITEM name="NAME" A="4219" ID="2" DATE="17-09-2008 11:28:00" X="400" B="5202" C="5213" D="2421" E="5206" STATUS="F" />

<ITEM name="NAME" A="4219" ID="3" DATE="17-09-2008 11:28:00" X="500" B="6202" C="6213" D="3421" E="6206" STATUS="F" />

</DATA>

</DOCUMENT>

 

 

Jak powinien wyglądać kod jeśli chcę wydobyć jedynie wartość np. 5213 znajdującą się w C w ID="2"?

Odnośnik do komentarza
Udostępnij na innych stronach

Człowieku nie dość, że simplexml upraszcza pracę nad XMLem do poziomu łopatologicznego to jeszcze nie potrafisz ułożyć prostego warunku?

<?php
$xml = simplexml_load_file( 'file.xml' );
foreach( $xml->DATA->ITEM as $item )
{
     if( $item['ID'] == 3 )
     {
          echo 'ID = ' . $item['ID'] .'<br />';
          echo 'C = ' . $item['C'] .'<br />';
          echo '---------<br />';
     }
}
?>

Odnośnik do komentarza
Udostępnij na innych stronach

Ale dlaczego się tak unosisz? Nie każdy interesuje się PHP, bo nie ma na to czasu, a chce dostać jakiś gotowy prosty kod. Na początku oferowałem pieniądze za wykonanie tego prostego kodu ale nikt nie chciał. Jeden drugiemu pomoże w php, drugi pomoże wymienić np. drzwi do garażu.

Odnośnik do komentarza
Udostępnij na innych stronach

To po co zabierasz się za coś na co nie masz czasu? Po za tym pisałeś, że siedziałeś w PHP, nie pamiętasz konstrukcji warunków? Nie wierzę. Jakbyś od razu powiedział co trzeba zrobić to byś miał to zrobione od ręki, a tak wszyscy muszą dochodzić o co chodzi. Z resztą było podawane tyle metod na wyciąganie tego co chcesz...

 

Mniejsza. Napisałem jak może wyglądać wyciąganie C z określonego ID. Jeśli jeszcze czegoś potrzeba to napisz.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...