2017-07-22 17 views
0

xmlファイルを読み込み、simplexml_load_stringメソッドを使用してPHPで解析する必要がありますが、空の結果を返します。コードはLaravel 5.4コントローラの中に入れられます。以下はPHPのバージョン5.5.12 simplexml_load_stringメソッドは空の結果を返します

は、それのソースコードです:

$xml = <<<XML 
<cartridge_basiclti_link xmlns="http://www.imsglobal.org/xsd/imslticc_v1p0" xmlns:blti="http://www.imsglobal.org/xsd/imsbasiclti_v1p0" xmlns:lticm="http://www.imsglobal.org/xsd/imslticm_v1p0" xmlns:lticp="http://www.imsglobal.org/xsd/imslticp_v1p0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imslticc_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticc_v1p0.xsd http://www.imsglobal.org/xsd/imsbasiclti_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0p1.xsd http://www.imsglobal.org/xsd/imslticm_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd http://www.imsglobal.org/xsd/imslticp_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd"> 
<blti:title>SOWISO Calculus Course</blti:title> 
<blti:description> 
A new and interactive calculus course for first year university mathematics, for groups of students who differ in knowledge and previous education. 
</blti:description> 
<blti:launch_url>https://calculus.sowiso.nl/lti/login</blti:launch_url> 
<blti:extensions platform="canvas.instructure.com"> 
<lticm:property name="domain">calculus.sowiso.nl</lticm:property> 
<lticm:property name="icon_url">http://sowiso.nl/calculus/en/img/16x16.png</lticm:property> 
<lticm:property name="link_text">SOWISO Calculus Course</lticm:property> 
<lticm:property name="privacy_level">name_only</lticm:property> 
<lticm:property name="tool_id">sowiso</lticm:property> 
</blti:extensions> 
</cartridge_basiclti_link>   
XML; 

$b = simplexml_load_string($xml); 

print "<pre>"; 
print_r($b); 
print "</pre>"; 

は提案をいただき、ありがとうございます。

答えて

0

あなたのxml文字列は名前空間であるため、simplexml_load_stringの機能では機能しません。この名前空間xml文字列の場合は、SimpleXMLElementオブジェクトを使用する必要があります。

$blti = new SimpleXMLElement($xml); 
$bltiFields = $blti->children('blti', true); 

echo "Title: " . (string) $bltiFields->title . "<br>"; 
echo "Description: " . (string) $bltiFields->description; 

出力以下のようにあなたのコードソリューションの

あなたが正しい

Title: SOWISO Calculus Course 
Description: A new and interactive calculus course for first year university mathematics, for groups of students who differ in knowledge and previous education. 
+0

次のように。ありがとうございました。私は質問を投稿してから15分後に方法を見つけました。 –

関連する問題