非标准的XML文件解析在PHP中

问题描述:

我有问题,在PHP中的措辞XML文件。尝试不同的方法,但没有运气,你能帮助吗? 以下是文件:非标准的XML文件解析在PHP中

<?xml version="1.0" encoding="iso-8859-2"?> 
    <Nadawca Struktura="1.6" Nazwa="Gospodarstwo Szk&#56202;&#56993;rskie Izabela i Ryszard Kie3kowski" NazwaSkrocona="GOSPODARST" Ulica="Kolberga" Dom="84a" Lokal="" Miejscowosc="PSZ&#1175;" Kod="44370" Guid="{08E2DA76-84BF-0406-F455-D83B5DF413D0}" NIP="6422846254" Zrodlo="POCZTA"> 
     <Zbior Nazwa="2014-03-04\3" DataUtworzenia="2014-03-04T14:18:40" Opis="Pwrd by EN 2014-03-04" IloscPrzesylek="48" Guid="{AF15D898-E79F-A1F8-E47F-820EC461EC2D}"> 
     <Przesylka Guid="{99FE8373-A250-C22D-F908-FD6D61D9B573}"> 
      <Atrybut Typ="" Nazwa="Symbol">832</Atrybut> 
      <Atrybut Typ="" Nazwa="KartaUmowy">xxxx</Atrybut> 
      <Atrybut Typ="" Nazwa="Umowa">xxxx</Atrybut> 
      <Atrybut Typ="" Nazwa="Uwagi">ccccc </Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Nazwa">xxxx</Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Ulica">Okrąg 58 b</Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Miejscowosc">LIPNO</Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Kod">87600</Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Kraj">Polska</Atrybut> 
      <Atrybut Typ="" Nazwa="NrNadania">EE920634112PL</Atrybut> 
      <Atrybut Typ="" Nazwa="Ilosc">1</Atrybut> 
      <Atrybut Typ="" Nazwa="Masa">1540</Atrybut> 
      <Atrybut Typ="" Nazwa="Serwis">E</Atrybut> 
      <Atrybut Typ="" Nazwa="Termin">X</Atrybut> 
      <Atrybut Typ="" Nazwa="CzyOplacaOdbiorca">N</Atrybut> 
      <Atrybut Typ="" Nazwa="Uslugi">P</Atrybut> 
      <Atrybut Typ="" Nazwa="IloscPotwOdb">0</Atrybut> 
      <Atrybut Typ="" Nazwa="SposobPobrania">S</Atrybut> 
      <Atrybut Typ="" Nazwa="KwotaPobrania">5200</Atrybut> 
      <Atrybut Typ="Oplata" Nazwa="Razem">0</Atrybut> 
      <Atrybut Typ="" Nazwa="Wartosc">0</Atrybut> 
      <Atrybut Typ="" Nazwa="DataNadania">2014-03-04</Atrybut> 
      <Atrybut Typ="" Nazwa="KontaktPowiadomieniaNadawcy">xxxxx</Atrybut> 
      <Atrybut Typ="" Nazwa="FormaPowiadomieniaNadawcy">M</Atrybut> 
      <Atrybut Typ="" Nazwa="FormaPowiadomieniaAdresata">M</Atrybut> 
      <Atrybut Typ="" Nazwa="KontaktPowiadomieniaAdresata">xxxxx</Atrybut> 
      <Atrybut Typ="" Nazwa="Wersja">1</Atrybut> 
     </Przesylka> 
     <Przesylka Guid="{5A705B7E-6F9D-9238-6093-BDB22979A7A4}"> 
      <Atrybut Typ="" Nazwa="Symbol">832</Atrybut> 
      <Atrybut Typ="" Nazwa="KartaUmowy">xxxx</Atrybut> 
      <Atrybut Typ="" Nazwa="Umowa">xxxx</Atrybut> 
      <Atrybut Typ="" Nazwa="Uwagi">xxxxx </Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Nazwa">xxxx</Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Ulica">xxxxx</Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Miejscowosc">Brzostek</Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Kod">39230</Atrybut> 
      <Atrybut Typ="Adresat" Nazwa="Kraj">Polska</Atrybut> 
      <Atrybut Typ="" Nazwa="NrNadania">EE920634126PL</Atrybut> 
      <Atrybut Typ="" Nazwa="Ilosc">1</Atrybut> 
      <Atrybut Typ="" Nazwa="Masa">16980</Atrybut> 
      <Atrybut Typ="" Nazwa="Serwis">E</Atrybut> 
      <Atrybut Typ="" Nazwa="Termin">X</Atrybut> 
      <Atrybut Typ="" Nazwa="CzyOplacaOdbiorca">N</Atrybut> 
      <Atrybut Typ="" Nazwa="Uslugi">P</Atrybut> 
      <Atrybut Typ="" Nazwa="IloscPotwOdb">0</Atrybut> 
      <Atrybut Typ="" Nazwa="SposobPobrania">S</Atrybut> 
      <Atrybut Typ="" Nazwa="KwotaPobrania">26400</Atrybut> 
      <Atrybut Typ="Oplata" Nazwa="Razem">0</Atrybut> 
      <Atrybut Typ="" Nazwa="Wartosc">0</Atrybut> 
      <Atrybut Typ="" Nazwa="DataNadania">2014-03-04</Atrybut> 
      <Atrybut Typ="" Nazwa="KontaktPowiadomieniaNadawcy">xxxx</Atrybut> 
      <Atrybut Typ="" Nazwa="FormaPowiadomieniaNadawcy">M</Atrybut> 
      <Atrybut Typ="" Nazwa="FormaPowiadomieniaAdresata">M</Atrybut> 
      <Atrybut Typ="" Nazwa="KontaktPowiadomieniaAdresata">xxxxx</Atrybut> 
      <Atrybut Typ="" Nazwa="Wersja">1</Atrybut> 
     </Przesylka> 
    </Zbior> 
</Nadawca> 

我试着去循环元素从中提取数据excample

I tried this: 
$str = file_get_contents('pocztex_import_listow.xml'); 
$xml = simplexml_load_string($str); 
echo 'Displaying user names of XML file...<br />'; 
foreach($xml as $event_date){ 
    echo 'Home: '.$event_date->{Nadawca}.'<br />'; 
} 

没有运气,tryng使用

$xml= new SimpleXMLElement('pocztex_import_listow.xml', null, true); 

,但它的工作原理相同...我的意思是它不工作:)

+0

你可以更具体一点“什么不工作”?你有什么错误吗?或者循环没有运行?您是否尝试过var_dump() - $ xml变量? –

+0

问题是没有输出 – Avatarus

这些波兰语字符是无效的编码:&#56202;&#56993;线上发现:

<Nadawca Struktura="1.6" Nazwa="Gospodarstwo Szk&#56202;&#56993;rskie Iza.... 
+0

我的赘肉,添加结束标签(我剪切条目因为他们约100人,都一样,所以没有必要在这里发布它们) – Avatarus