0
我一直在尋找一個解決方案,這幾個小時,但似乎沒有工作,我讀http://www.sitepoint.com/simplexml-and-namespaces/,但它似乎並沒有爲我工作。爲什麼我不能用SimpleXML解析這個SOAP響應?
這裏是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/>';
}
但是得到節點不復存在警告
有人能幫忙,謝謝