具有多个URL的xml文件上的registerXPathNamespace

时间:2014-07-14 08:26:37

标签: php xpath

我正在尝试让以下内容工作,但我得到的结果是一个空数组。使用cURL我收到了一个XML结果,我尝试使用xpath访问它。

在阅读了php.net以及其他网站上的示例之后,我想出了下面的PHP代码,但是我找到的所有示例都使用了一个只有一个url的非常基本的xml文件,whist我有两个url。我假设我必须使用最后一个url,因为那是绑定内容的那个。

<?PHP
function download_page($path)
{
    $postData = 'requestXml=<bericht>
                                <authenticatie>
                                    <naam>XXXXX</naam>
                                    <wachtwoord>XXXXX</wachtwoord>
                                    <berichtsoort>SB-RDW-ADVANCED</berichtsoort>
                                </authenticatie>
                                <parameters>
                                    <kenteken>42pzks</kenteken>
                                </parameters>
                            </bericht>';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $path);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);

    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

    $retValue = curl_exec($ch);          
    curl_close($ch);

    return $retValue;
}

$sXML = download_page('https://acceptatie-interdata.vwe.nl/DataAanvraag.asmx/standaardDataRequest');
$oXML = new SimpleXMLElement($sXML);

$oXML->registerXPathNamespace('c', 'http://www.xmlmode.nl/interdata/rdw');
$result = $oXML->xpath('//c:handelsbenaming');

echo "<pre>";
print_r($result);
echo "</pre>";
?>

XML具有以下结果

<antwoordbericht xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<aanvraag>
    <bericht>
        <authenticatie>
            <naam>XXX</naam>
            <wachtwoord>XXX</wachtwoord>
            <berichtsoort>SB-RDW-ADVANCED</berichtsoort>
        </authenticatie>
        <parameters>
            <kenteken>42pzks</kenteken>
        </parameters>
    </bericht>
</aanvraag>
<resultaat>
    <code>00</code>
    <omschrijving>Ok</omschrijving>
    <interdataReferentie>985933</interdataReferentie>
</resultaat>
<rubrieken>
    <rdwInfoAdvanced xsi:type="rdw:rdwInfoAdvancedTypeV4" xmlns:rdw="http://www.xmlmode.nl/interdata/rdw">
        <rdw:kenteken>42PZKS</rdw:kenteken>
        <rdw:isMeldCodeCorrect>false</rdw:isMeldCodeCorrect>
        <rdw:kentekenSignaal xsi:nil="true" />
        <rdw:merk code="BMWP">bmw</rdw:merk>
        <rdw:handelsbenaming>5ER REIHE; 525D TOURING AUT.</rdw:handelsbenaming>
        <rdw:voertuigsoort>P</rdw:voertuigsoort>
        <rdw:brandstof1 code="D">diesel</rdw:brandstof1>
        <rdw:brandstof2 xsi:nil="true" />
        <rdw:kleur1 code="07">grijs</rdw:kleur1>
        <rdw:kleur2 code="99">niet van toepassing</rdw:kleur2>
        <rdw:aantalZitplaatsen>5</rdw:aantalZitplaatsen>
        <rdw:aantalStaanplaatsen>0</rdw:aantalStaanplaatsen>
        <rdw:datumEersteToelatingInternationaal>2005-03-04</rdw:datumEersteToelatingInternationaal>
        <rdw:datumEersteToelatingNationaal>2005-03-04</rdw:datumEersteToelatingNationaal>
        <rdw:datumAansprakelijkheid>2010-02-23</rdw:datumAansprakelijkheid>
        <rdw:datumVervalApk>2013-12-31</rdw:datumVervalApk>
        <rdw:aantalCilinders>6</rdw:aantalCilinders>
        <rdw:cilinderinhoud>2497</rdw:cilinderinhoud>
        <rdw:massaLeegVoertuig>1660</rdw:massaLeegVoertuig>
        <rdw:laadvermogen>0</rdw:laadvermogen>
        <rdw:maximumMassa>2285</rdw:maximumMassa>
        <rdw:massaRijklaar>1760</rdw:massaRijklaar>
        <rdw:maximumMassaOngeremd>750</rdw:maximumMassaOngeremd>
        <rdw:maximumMassaGeremd>2000</rdw:maximumMassaGeremd>
        <rdw:maximumMassaOpleggerGeremd>0</rdw:maximumMassaOpleggerGeremd>
        <rdw:maximumMassaAutonoomGeremd>0</rdw:maximumMassaAutonoomGeremd>
        <rdw:maximumMassaMiddenasGeremd>0</rdw:maximumMassaMiddenasGeremd>
        <rdw:parallelImport>false</rdw:parallelImport>
        <rdw:uitvoeringsVolgnummer>22500</rdw:uitvoeringsVolgnummer>
        <rdw:aantalDeuren>4</rdw:aantalDeuren>
        <rdw:inrichting code="44">stationwagen</rdw:inrichting>
        <rdw:voertuigClassificatie code="01">personenauto</rdw:voertuigClassificatie>
        <rdw:aantalWielen>4</rdw:aantalWielen>
        <rdw:vermogenKw>130</rdw:vermogenKw>
        <rdw:vermogenBromfiets xsi:nil="true" />
        <rdw:maximaleConstructiesnelheid>0</rdw:maximaleConstructiesnelheid>
        <rdw:emissieCode>R</rdw:emissieCode>
        <rdw:g3Installatie>false</rdw:g3Installatie>
        <rdw:bpm>19775</rdw:bpm>
        <rdw:verplichtingennemer>false</rdw:verplichtingennemer>
        <rdw:wamVerzekerd>true</rdw:wamVerzekerd>
        <rdw:wielbasis>288</rdw:wielbasis>
        <rdw:motorcode>256D2</rdw:motorcode>
        <rdw:catalogusPrijs xsi:nil="true" />
        <rdw:isTaxi>false</rdw:isTaxi>
    </rdwInfoAdvanced>
</rubrieken>

在应用simplexml元素之前我收到的结果是:

<antwoordbericht xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<aanvraag>
    &lt;bericht&gt; 
        &lt;authenticatie&gt; 
            &lt;naam&gt;XXXX&lt;/naam&gt; 
            &lt;wachtwoord&gt;XXXX&lt;/wachtwoord&gt; 
            &lt;berichtsoort&gt;SB-RDW-ADVANCED&lt;/berichtsoort&gt; 
        &lt;/authenticatie&gt; 
        &lt;parameters&gt; 
            &lt;kenteken&gt;42pzks&lt;/kenteken&gt; 
        &lt;/parameters&gt; 
    &lt;/bericht&gt;
</aanvraag>
<resultaat>
    <code>00</code>
    <omschrijving>Ok</omschrijving>
    <interdataReferentie>987573</interdataReferentie>
</resultaat>
<rubrieken>
    <rdwInfoAdvanced xsi:type="rdw:rdwInfoAdvancedTypeV4" xmlns:rdw="http://www.xmlmode.nl/interdata/rdw">
        <rdw:kenteken>42PZKS</rdw:kenteken>
        <rdw:isMeldCodeCorrect>false</rdw:isMeldCodeCorrect>
        <rdw:kentekenSignaal xsi:nil="true" />
        <rdw:merk code="BMWP">bmw</rdw:merk>
        <rdw:handelsbenaming>5ER REIHE; 525D TOURING AUT.</rdw:handelsbenaming>
        <rdw:voertuigsoort>P</rdw:voertuigsoort>
        <rdw:brandstof1 code="D">diesel</rdw:brandstof1>
        <rdw:brandstof2 xsi:nil="true" />
        <rdw:kleur1 code="07">grijs</rdw:kleur1>
        <rdw:kleur2 code="99">niet van toepassing</rdw:kleur2>
        <rdw:aantalZitplaatsen>5</rdw:aantalZitplaatsen>
        <rdw:aantalStaanplaatsen>0</rdw:aantalStaanplaatsen>
        <rdw:datumEersteToelatingInternationaal>2005-03-04</rdw:datumEersteToelatingInternationaal>
        <rdw:datumEersteToelatingNationaal>2005-03-04</rdw:datumEersteToelatingNationaal>
        <rdw:datumAansprakelijkheid>2010-02-23</rdw:datumAansprakelijkheid>
        <rdw:datumVervalApk>2013-12-31</rdw:datumVervalApk>
        <rdw:aantalCilinders>6</rdw:aantalCilinders>
        <rdw:cilinderinhoud>2497</rdw:cilinderinhoud>
        <rdw:massaLeegVoertuig>1660</rdw:massaLeegVoertuig>
        <rdw:laadvermogen>0</rdw:laadvermogen>
        <rdw:maximumMassa>2285</rdw:maximumMassa>
        <rdw:massaRijklaar>1760</rdw:massaRijklaar>
        <rdw:maximumMassaOngeremd>750</rdw:maximumMassaOngeremd>
        <rdw:maximumMassaGeremd>2000</rdw:maximumMassaGeremd>
        <rdw:maximumMassaOpleggerGeremd>0</rdw:maximumMassaOpleggerGeremd>
        <rdw:maximumMassaAutonoomGeremd>0</rdw:maximumMassaAutonoomGeremd>
        <rdw:maximumMassaMiddenasGeremd>0</rdw:maximumMassaMiddenasGeremd>
        <rdw:parallelImport>false</rdw:parallelImport>
        <rdw:uitvoeringsVolgnummer>22500</rdw:uitvoeringsVolgnummer>
        <rdw:aantalDeuren>4</rdw:aantalDeuren><
        rdw:inrichting code="44">stationwagen</rdw:inrichting>
        <rdw:voertuigClassificatie code="01">personenauto</rdw:voertuigClassificatie>
        <rdw:aantalWielen>4</rdw:aantalWielen>
        <rdw:vermogenKw>130</rdw:vermogenKw>
        <rdw:vermogenBromfiets xsi:nil="true" />
        <rdw:maximaleConstructiesnelheid>0</rdw:maximaleConstructiesnelheid>
        <rdw:emissieCode>R</rdw:emissieCode>
        <rdw:g3Installatie>false</rdw:g3Installatie>
        <rdw:bpm>19775</rdw:bpm>
        <rdw:verplichtingennemer>false</rdw:verplichtingennemer>
        <rdw:wamVerzekerd>true</rdw:wamVerzekerd>
        <rdw:wielbasis>288</rdw:wielbasis>
        <rdw:motorcode>256D2</rdw:motorcode>
        <rdw:catalogusPrijs xsi:nil="true" />
        <rdw:isTaxi>false</rdw:isTaxi>
    </rdwInfoAdvanced>
</rubrieken>

0 个答案:

没有答案