我有一个像这个http://somedomain.com/frieventexport.php
的网址,如果我查看网站的源代码,这个网址的内容是纯XML结构:
如何解析此URL并在PHP中使用它? 这个脚本给我一个错误......“加载XML时出错”。
<?php
$xml_url = "http://somedomain.com/frieventexport.php";
if (($response_xml_data = file_get_contents($xml_url))===false){
echo "Error fetching XML\n";
} else {
libxml_use_internal_errors(true);
$data = simplexml_load_string($response_xml_data);
if (!$data) {
echo "Error loading XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
} else {
print_r($data);
}
}
?>
答案 0 :(得分:1)
file_get_contents()
,否则您可以在php.ini中设置allow_url_fopen
(但要注意安全风险)。您可以使用php_info()
或var_dump(ini_get('allow_url_fopen'))
检查此设置,以显示是否允许。
如果您无法执行上述操作,则可以使用CURL获取外部内容
答案 1 :(得分:1)
我认为最好的选择之一是使用CURL从网址获取原始XML数据:
$curl = curl_init();
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $curl, CURLOPT_URL, "http://somedomain.com/frieventexport.php" );
$xml = curl_exec( $curl );
curl_close( $curl );
然后,您可以使用DOMDocument来解析xml:
$document = new DOMDocument;
$document->loadXML( $xml );
我还建议在XML中使用<![CDATA[]>
标记。请阅读以下内容:
有关DOMDocument和用法的更多信息
答案 2 :(得分:0)
尝试以下方法:
$url = 'xml-file.xml';
$xml = simplexml_load_file($url);
print_r($xml);
答案 3 :(得分:-1)
试试这个:
$livescore_data = new SimpleXMLElement($file);