【发布时间】:2012-02-28 11:21:32
【问题描述】:
我已经为这个问题寻找了几个小时的解决方案,但似乎没有任何效果,我已经阅读了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/>';
}
但获取节点不再存在警告
谁能帮忙,谢谢
【问题讨论】: