簡體   English   中英

嘗試使用來自W3驗證程序的SOAP 1.2響應

[英]Attempting to work with SOAP 1.2 response from W3 validator

if($xml = simplexml_load_file($validationURL . "&output=soap12"))
{
   echo "Success";  
}
else
{
    echo "Failed";
}

因此,這始終失敗。 $ validationURL是“ http://validator.w3.org/check?uri=http://uvm.edu/~mfurland/cs148/assign1/projects.php”

http://validator.w3.org/check?uri=http://uvm.edu/~mfurland/cs148/assign1/nav.php&output=soap12在瀏覽器中有效,但在我的代碼中不起作用。 如果我使用file(),則會得到一個數組,但所有字符串都是一串看不見的字符。 就像它有一個二十或三十的字符串,看起來像“ 0”。 我在這里做錯了什么? 似乎沒有其他人有這個問題。

在瀏覽器中查看文件的內容:

    <m:uri>http://www.uvm.edu/~mfurland/cs148/assign1/projects.php</m:uri>
    <m:checkedby>http://validator.w3.org/</m:checkedby>
    <m:doctype>HTML5</m:doctype>
    <m:charset>utf-8</m:charset>
    <m:validity>true</m:validity>
    <m:errors>
        <m:errorcount>0</m:errorcount>
        <m:errorlist></m:errorlist>
    </m:errors>
    <m:warnings>
        <m:warningcount>1</m:warningcount>
        <m:warninglist></m:warninglist>
    </m:warnings>
</m:markupvalidationresponse>
</env:Body>
</env:Envelope>

我經常必須與使用名稱空間的Web服務進行通信。 您有兩種選擇: 使用SimpleXML注冊名稱空間,或從標記中刪除:字符。

刪除:可能更容易,但不是最整潔的選擇,具體取決於您要對數據執行的操作。

刪除冒號:

$xml_content = file_get_contents($validationURL . '&output=soap12');
$xml_content = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $xml_content);
$xml = simplexml_load_string($xml_content);

另外,要使用名稱空間,請參閱本文使用SimpleXML使用名稱空間解析XML。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM