Я искал решение для этого в течение нескольких часов, но, похоже, ничего не работает, я прочитал 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 больше не существует, предупреждение
Может кто-нибудь помочь, спасибо