我目前正在解析api-response(xml)中的數據,但我無法真正解析數據。我以前用xpath解析了XML repsonses,取得了巨大的成功,但在這種情況下它並不起作用。解析XML,xpath不會工作
這裏是我的代碼:
$personnr = $_POST['bcpn'];
//Get string
$getstring = 'CustomerLoginName=xxxx&UserLoginName=xxx&Password=xxx&Language=xxx&PersonNumber='.$personnr;
//Target URL
$url = "https://xxxxx.se/x/xxx.asmx/DataImport2Person?$getstring";
//Creating Simple XMl Objects
$xml = new SimpleXMLElement($url, null, true);
這裏是XML響應:
<DataImport2Result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.xxx.xxx/xxxx/xxx2">
<Number/>
<Blocks>
<Block>
<Code>PNrStatus</Code>
<Fields>
<Field>
<Code>PNrStatus</Code>
<Value>0</Value>
</Field>
<Field>
<Code>PNrStatusText</Code>
<Value>Registrerat personnummer</Value>
</Field>
</Fields>
</Block>
<Block>
<Code>Fbf</Code>
<Fields>
<Field>
<Code>FinnsIFbf</Code>
<Value>1</Value>
</Field>
<Field>
<Code>FinnsIFbfText</Code>
<Value>Ja</Value>
</Field>
<Field>
<Code>SkyddadMark</Code>
<Value>0</Value>
</Field>
<Field>
<Code>SkyddadMarkText</Code>
<Value>Nej</Value>
</Field>
<Field>
<Code>FbkMark</Code>
<Value>0</Value>
</Field>
<Field>
<Code>FbkMarkText</Code>
<Value/>
</Field>
<Field>
<Code>SparDatum</Code>
<Value>2000-01-01</Value>
</Field>
<Field>
<Code>PNr</Code>
<Value>19590707-1111</Value>
</Field>
<Field>
<Code>FNamn</Code>
<Value>Jan Olof</Value>
</Field>
<Field>
<Code>MNamn</Code>
<Value/>
</Field>
<Field>
<Code>ENamn</Code>
<Value>Håkansson</Value>
</Field>
<Field>
<Code>Coadress</Code>
<Value/>
</Field>
<Field>
<Code>Gatuadress</Code>
<Value>Götgatan</Value>
</Field>
<Field>
<Code>Postnr</Code>
<Value>12639</Value>
</Field>
<Field>
<Code>Postort</Code>
<Value>HÄGERSTEN</Value>
</Field>
<Field>
<Code>TNamn</Code>
<Value>Jan</Value>
</Field>
</Fields>
</Block>
<Block>
<Code>TaxAr1</Code>
<Fields>
<Field>
<Code>TaxAr</Code>
<Value>2010</Value>
</Field>
<Field>
<Code>InkTj</Code>
<Value>211620</Value>
</Field>
<Field>
<Code>InkNarvAkt</Code>
<Value>0</Value>
</Field>
<Field>
<Code>InkNarvPass</Code>
<Value>0</Value>
</Field>
<Field>
<Code>UskNarvAkt</Code>
<Value>0</Value>
</Field>
<Field>
<Code>UskNarvPass</Code>
<Value>0</Value>
</Field>
<Field>
<Code>AllmAvdr</Code>
<Value>5500</Value>
</Field>
<Field>
<Code>TaxForvInk</Code>
<Value>206100</Value>
</Field>
<Field>
<Code>InkKap</Code>
<Value>0</Value>
</Field>
<Field>
<Code>UndKap</Code>
<Value>21908</Value>
</Field>
<Field>
<Code>SamInk</Code>
<Value>184192</Value>
</Field>
<Field>
<Code>SlutSkatt</Code>
<Value>41130</Value>
</Field>
<Field>
<Code>EjFast</Code>
<Value>0</Value>
</Field>
<Field>
<Code>EjFastText</Code>
<Value>Nej</Value>
</Field>
<Field>
<Code>NollTax</Code>
<Value>0</Value>
</Field>
<Field>
<Code>NollTaxText</Code>
<Value>Nej</Value>
</Field>
</Fields>
</Block>
</Blocks>
</DataImport2Result>
正如你可以看到有很多「塊」,這是該數據的位置,理想的解決方案的對我來說是一個數組,它說<code> => <value>
。
我將不勝感激任何幫助和建議。
一切順利, 貂
又有什麼問題呢?爲什麼你*無法真正解析數據*?什麼*不起作用*? SimpleXML可以使用XPath並且可迭代。聽起來像現在的gimme-teh-codez。 – Gordon
問題是,XPath不會工作,儘管我使用的是「通配符」,它是// – moffepoffe
'foreach(simplexml_load_file($ apiUrl) - > Blocks-> Block as $ block){' – Gordon