【问题标题】:non standard XML file parse in phpphp中的非标准XML文件解析
【发布时间】:2014-03-05 13:52:51
【问题描述】:

我在 PHP 中解析 XML 文件时遇到问题。尝试了不同的方法,但没有运气,你能帮忙吗? 这是文件:

    <?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>

我试图循环遍历元素以从中提取数据以供示例

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 />';
}

运气不好,尝试使用

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

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

【问题讨论】:

  • 你能更具体一点“什么不起作用”吗?你有任何错误吗?或者循环没有被运行?你试过 var_dump()-ing $xml 变量吗?
  • 问题是没有输出

标签: php xml-parsing


【解决方案1】:

这些波兰字符对编码无效:&amp;#56202;&amp;#56993; 在线找到:

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

【讨论】:

  • 我的犯规,添加了结束标签(我删掉了 条目,因为它们大约有 100 个,都是一样的,所以不需要在这里全部发布)
猜你喜欢
  • 1970-01-01
  • 2011-12-08
  • 2012-10-20
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 2020-04-10
  • 2013-02-28
相关资源
最近更新 更多