Почему я не могу разобрать этот SOAP-ответ с SimpleXML? - PullRequest
0 голосов
/ 28 февраля 2012

Я искал решение для этого в течение нескольких часов, но, похоже, ничего не работает, я прочитал http://www.sitepoint.com/simplexml-and-namespaces/, но, похоже, он не работает для меня.

Вотxml, который я пытаюсь проанализировать:

<?xml version="1.0" encoding="utf-8"?>
 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <FlokkurResponse xmlns="http://www2.ksi.is/vefthjonustur/mot/">
      <FlokkurSvar>
        <ArrayFlokkur>
          <Flokkur>
            <FlokkurHeiti>1. flokkur</FlokkurHeiti>
            <FlokkurNumer>113</FlokkurNumer>
          </Flokkur>
          <Flokkur>
            <FlokkurHeiti>2. flokkur</FlokkurHeiti>
            <FlokkurNumer>109</FlokkurNumer>
          </Flokkur>
          <Flokkur>
            <FlokkurHeiti>3. flokkur</FlokkurHeiti>
            <FlokkurNumer>124</FlokkurNumer>
          </Flokkur>
        </ArrayFlokkur>
        <VillaNumer>0</VillaNumer>
      </FlokkurSvar>
    </FlokkurResponse>
  </soap:Body>
</soap:Envelope>

Что я хочу сделать, это получить значение каждого FlokkurHeiti, поэтому я подумал, что смогу сделать это:

foreach ($xml->Flokkur as $x) {
    echo $x->FlokkurHeiti.'<br/>';
}

Как вы можетевижу, что ни FLokkur, ни FlokkurHeiti не имеют пространств имен или атрибутов, но я не получаю никакого вывода.

Я также пытался

$t = $xml->children("http://schemas.xmlsoap.org/soap/envelope/")->Body->FlokkurResponse->children("http://www2.ksi.is/vefthjonustur/mot/")->FlokkurSvar->ArrayFlokkur->Flokkur;
foreach ($t as $x) {
    echo $x->FlokkurHeiti.'<br/>';
}

Но Get Node больше не существует, предупреждение

Может кто-нибудь помочь, спасибо

1 Ответ

0 голосов
/ 05 сентября 2012

Как видите, ни FLokkur, ни FlokkurHeiti не имеют пространств имен

На самом деле, они имеют пространство имен: xmlns="http://www2.ksi.is/vefthjonustur/mot/"

Может быть, вымог бы посмотреть: http://www.w3.org/TR/REC-xml-names/

...