Napisany przez: skine 26.05.2014, 16:56:56
Witam, mam takie zadanie aby z pliku xml wyciągnąć odpowiednio id produktu oraz jego nazwę niemiecką(czyli 1 i 4 linia), a następnie zapisać to w pliku.
Za bardzo nie wiem jak się za to wziąć, może ktoś coś doradzi ? Z xml jeszcze nie miałem do czynienia także prosiłbym o jakieś najprostsze rozwiązania.
Tutaj fragment kodu
Kod
<product product_id = "15409">
<name><![CDATA[EMAMODA SUKIENKA - CZARNY - BIAŁY 5705-8]]></name>
<name_en><![CDATA[EMAMODA DRESS - BLACK - WHITE 5705-8]]></name_en>
<name_de><![CDATA[EMAMODA DRESS - SCHWARZ - WEISS 5705-8]]></name_de>
<name_ru><![CDATA[EMAMODA ПЛАТЬЕ - черный - белый 5705-8]]></name_ru>
<description><![CDATA[Szyfonowa sukienka z koronką<br /><p>
<img alt=""" /></p><br /><iframe width="400" frameborder="no" src=""></iframe>]]></description>
<description_en><![CDATA[Chiffon dress with lace<br /><p>
<img alt="" src="" /></p><br /><iframe width="400" frameborder="no" src=""></iframe>]]></description_en>
<description_de><![CDATA[Chiffon-Kleid mit Spitze<br /><p>
<img alt="" src="" /></p><br /><iframe width="400" frameborder="no" src=""></iframe>]]></description_de>
<description_ru><![CDATA[Шифон платье с кружевом<br /><p>
<img alt="" src="" /></p><br /><iframe width="400" frameborder="no" src=""></iframe>]]></description_ru>
<code>5705-8</code>
<producer_code>Y593</producer_code>
<type>f</type>
<producer><![CDATA[Emamoda]]></producer>
<photos>
<photo></photo>
<photo></photo>
<photo></photo>
<photo></photo>
</photos>
<category_id>15</category_id>
<category_id2>0</category_id2>
<add_date>2014-05-05 08:39:42</add_date>
<price_netto>61.40</price_netto>
<sale>0</sale>
<sale_price_netto>0.00</sale_price_netto>
<fillup>0</fillup>
<sizes>
<size name="S" count="1" />
<size name="M" count="4" />
<size name="L" count="3" />
</sizes>
<color><![CDATA[CZARNY - BIAŁY]]></color>
<color_en><![CDATA[BLACK - WHITE]]></color_en>
<color_de><![CDATA[SCHWARZ - WEISS]]></color_de>
<color_ru><![CDATA[BLACK - WHITE]]></color_ru>
<cloth><![CDATA[100% poliester]]></cloth>
<cloth_en><![CDATA[100% poliester]]></cloth_en>
<cloth_de><![CDATA[100% poliester]]></cloth_de>
<cloth_ru><![CDATA[100% poliester]]></cloth_ru>
<price_netto_eur>15.24</price_netto_eur>
Napisany przez: Turson 26.05.2014, 17:42:13
http://www.php.net/manual/en/simplexml.examples-basic.php
Napisany przez: skine 27.05.2014, 11:10:24
Ciągle mi to nie wychodzi, nawet wzorując się na przykładach od Turson. Nie potrafię uzyskać nawet samego id.
Napisany przez: skine 27.05.2014, 11:31:25
No właśnie w przykładach są wyciągane elementy z pomiędzy tagów jak np <plot> xxx </plot> u mnie id znajduje się <product product_id = "15409">
Napisany przez: Turson 27.05.2014, 11:34:36
Jak już masz otwarty plik xml np. w $plik i chcesz się dostać do product_id to
http://www.php.net/echo $plik->product['product_id'];
Napisany przez: nospor 27.05.2014, 11:35:54
W przykladzie Example #5 Using attributes masz pokazane jak pobierac wartosci z atrybutów...
Napisany przez: skine 27.05.2014, 11:51:53
Cytat(Turson @ 27.05.2014, 12:34:36 )
Jak już masz otwarty plik xml np. w $plik i chcesz się dostać do product_id to
http://www.php.net/echo $plik->product['product_id'];
Tak wygląda od początku xml
Kod
<?xml version="1.0" encoding="utf-8"?>
<root targetNamespace="http://yournewstyle.pl">
<date>2014-05-26 03:02:30</date>
<categories>
<category category_id = "1">
<parent>0</parent>
<name><![CDATA[Damskie]]></name>
</category>
<category category_id = "2">
<parent>0</parent>
<name><![CDATA[Męskie]]></name>
</category>
<category category_id = "3">
<parent>0</parent>
<name><![CDATA[Dodatki]]></name>
</category>
<category category_id = "33">
<parent>2</parent>
<name><![CDATA[Koszule]]></name>
</category>
<category category_id = "12">
<parent>1</parent>
<name><![CDATA[Kurtki i Płaszcze]]></name>
</category>
<category category_id = "34">
<parent>2</parent>
<name><![CDATA[Bluzki]]></name>
</category>
<category category_id = "13">
<parent>1</parent>
<name><![CDATA[Spodnie i spodenki]]></name>
</category>
<category category_id = "51">
<parent>2</parent>
<name><![CDATA[Długi rękaw]]></name>
</category>
<category category_id = "15">
<parent>1</parent>
<name><![CDATA[Sukienki ]]></name>
</category>
<category category_id = "52">
<parent>2</parent>
<name><![CDATA[Spodnie, spodenki]]></name>
</category>
<category category_id = "16">
<parent>1</parent>
<name><![CDATA[Swetry]]></name>
</category>
<category category_id = "55">
<parent>2</parent>
<name><![CDATA[Swetry]]></name>
</category>
<category category_id = "17">
<parent>1</parent>
<name><![CDATA[Topy]]></name>
</category>
<category category_id = "50">
<parent>3</parent>
<name><![CDATA[Szale]]></name>
</category>
<category category_id = "18">
<parent>1</parent>
<name><![CDATA[Tuniki]]></name>
</category>
<category category_id = "19">
<parent>1</parent>
<name><![CDATA[Obuwie]]></name>
</category>
<category category_id = "20">
<parent>1</parent>
<name><![CDATA[Komplety]]></name>
</category>
<category category_id = "23">
<parent>1</parent>
<name><![CDATA[Spódniczki]]></name>
</category>
<category category_id = "24">
<parent>1</parent>
<name><![CDATA[Koszule]]></name>
</category>
<category category_id = "27">
<parent>1</parent>
<name><![CDATA[Bluzki]]></name>
</category>
<category category_id = "28">
<parent>1</parent>
<name><![CDATA[Dodatki]]></name>
</category>
<category category_id = "30">
<parent>1</parent>
<name><![CDATA[Stroje kąpielowe]]></name>
</category>
<category category_id = "35">
<parent>1</parent>
<name><![CDATA[Marynarki i żakiety]]></name>
</category>
</categories>
<products>
<product product_id = "15409">
<name><![CDATA[EMAMODA SUKIENKA - CZARNY - BIAŁY 5705-8]]></name>
<name_en><![CDATA[EMAMODA DRESS - BLACK - WHITE 5705-8]]></name_en>
<name_de><![CDATA[EMAMODA DRESS - SCHWARZ - WEISS 5705-8]]></name_de>
<name_ru><![CDATA[EMAMODA ПЛАТЬЕ - черный - белый 5705-8]]></name_ru>
<description><![CDATA[Szyfonowa sukienka z koronką<br /><p>
<img alt="" src="http://www.yournewstyle.pl/grafika/wymiary/emamoda2.gif" /></p><br /><iframe width="400" frameborder="no" src="http://www.youtube.com/embed/yH4UPXFsu-Y?rel=1&autoplay=1"></iframe>]]></description>
<description_en><![CDATA[Chiffon dress with lace<br /><p>
<img alt="" src="http://www.yournewstyle.pl/grafika/wymiary/emamoda2.gif" /></p><br /><iframe width="400" frameborder="no" src="http://www.youtube.com/embed/yH4UPXFsu-Y?rel=1&autoplay=1"></iframe>]]></description_en>
<description_de><![CDATA[Chiffon-Kleid mit Spitze<br /><p>
<img alt="" src="http://www.yournewstyle.pl/grafika/wymiary/emamoda2.gif" /></p><br /><iframe width="400" frameborder="no" src="http://www.youtube.com/embed/yH4UPXFsu-Y?rel=1&autoplay=1"></iframe>]]></description_de>
<description_ru><![CDATA[Шифон платье с кружевом<br /><p>
<img alt="" src="http://www.yournewstyle.pl/grafika/wymiary/emamoda2.gif" /></p><br /><iframe width="400" frameborder="no" src="http://www.youtube.com/embed/yH4UPXFsu-Y?rel=1&autoplay=1"></iframe>]]></description_ru>
<code>5705-8</code>
<producer_code>Y593</producer_code>
<type>f</type>
<producer><![CDATA[Emamoda]]></producer>
<photos>
<photo>http://yournewstyle.pl/files/clothes/big/b93c898bbb07f29b19eca41ea7e0fbf1.jpg</photo>
<photo>http://yournewstyle.pl/files/clothes/big/cf77f3e0c0595f243e52cb1838c5769f.jpg</photo>
<photo>http://yournewstyle.pl/files/clothes/big/64c2c591dc85e668f64dd5a34cf1d6ab.jpg</photo>
<photo>http://yournewstyle.pl/files/clothes/big/d3e5a098e1e3fcc2e2cf2c3f5bb02c2c.jpg</photo>
</photos>
<category_id>15</category_id>
<category_id2>0</category_id2>
<add_date>2014-05-05 08:39:42</add_date>
<price_netto>61.40</price_netto>
<sale>0</sale>
<sale_price_netto>0.00</sale_price_netto>
<fillup>0</fillup>
<sizes>
<size name="S" count="1" />
<size name="M" count="4" />
<size name="L" count="3" />
</sizes>
<color><![CDATA[CZARNY - BIAŁY]]></color>
<color_en><![CDATA[BLACK - WHITE]]></color_en>
<color_de><![CDATA[SCHWARZ - WEISS]]></color_de>
<color_ru><![CDATA[BLACK - WHITE]]></color_ru>
<cloth><![CDATA[100% poliester]]></cloth>
<cloth_en><![CDATA[100% poliester]]></cloth_en>
<cloth_de><![CDATA[100% poliester]]></cloth_de>
<cloth_ru><![CDATA[100% poliester]]></cloth_ru>
<price_netto_eur>15.24</price_netto_eur>
</product>
Kod
<?php
$xml = simplexml_load_file("yournewstyle.xml");
echo $xml->products->product['product_id'];
?>
To tak powinno wyglądać ?
Napisany przez: Turson 27.05.2014, 11:57:05
raczej tak
$xml = simplexml_load_file("yournewstyle.xml");
foreach($xml->root->products->product as $v){
http://www.php.net/echo $v['product_id'];
}
Napisany przez: skine 27.05.2014, 12:08:00
Coś muszę jeszcze robić chyba źle albo czegoś wgl nie robić, nic nie wyskakuje.
Napisany przez: Pyton_000 27.05.2014, 20:54:27
$xml = simplexml_load_file("yournewstyle.xml");
foreach($xml->root->products->product as $v){
http://www.php.net/echo (string)$v['product_id'];
}
Napisany przez: skine 28.05.2014, 16:24:00
Dzięki wielkie za pomoc, osiągnąłem to co chciałem.
Teraz próbuję wyciągnąć zawartość z pomiędzy tagów za pomocą samego simplexmla jak jest pokazane tutaj.
http://www.php.net/manual/en/simplexml.examples-basic.php
Mój xml ma taką zawartość
<?xml version='1.0' standalone='yes'?>
<movies>
<movie>
<title>PHP: Behind the Parser</title>
<characters>
<character>
<name>Ms. Coder</name>
<actor>Onlivia Actora</actor>
</character>
<character>
<name>Mr. Coder</name>
<actor>El ActÓr</actor>
</character>
</characters>
<plot>
So, this language. It's like, a programming language. Or is it a
scripting language? All is revealed in this thrilling horror spoof
of a documentary.
</plot>
<great-lines>
<line>PHP solves all my web problems</line>
</great-lines>
<rating type="thumbs">7</rating>
<rating type="stars">5</rating>
</movie>
</movies>
Mój kod to
<?php
$xml = simplexml_load_file('test.xml');
$movies = new SimpleXMLElement($xml);
http://www.php.net/echo $movies->movie->plot;
?>
Napisze mi ktoś co robię źle ? Nic się nie pokazuje.
Napisany przez: Pyton_000 28.05.2014, 17:46:07
Jak już robisz kopiuj/wklej to rób to dokładnie. Porównaj swój kod z tym z przykładu