當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP simplexml_load_string()用法及代碼示例


有時需要在PHP中解析XML數據。有幾種方法可用於解析XML數據。 SimpleXML是其中之一。解析XML文檔意味著瀏覽XML文檔並返回相關信息。如今,一些API以JSON格式返回數據,但是仍然有大量網站以XML格式返回數據。因此,如果我們想品嘗可用的API,就必須精通解析XML文檔。

PHP SimpleXML是PHP 5.0中引入的。 PHP中的simplexml_load_string()函數用於將XML字符串解釋為對象。

句法


simplexml_load_string($data, $classname, $options, $ns, $is_prefix);

參數:此函數接受五個參數,如上麵的語法所示。所有這些參數如下所述:

  • $data:格式正確的XML字符串。
  • $classname:新對象的類。
  • $options:通過指定選項和1或0來設置其他Libxml參數。
  • $ns:如果ns是前綴,則為TRUE。如果ns是URI,則為FALSE。默認為FALSE
  • $is_prefix:如果ns是前綴,則為TRUE。如果ns是URI,則為FALSE。默認為FALSE

參數$options的可能值如下:

  • LIBXML_COMPACT:激活節點分配優化。
  • LIBXML_DTDATTR:設置默認的DTD屬性
  • LIBXML_DTDLOAD:加載外部子集
  • LIBXML_DTDVALID:使用DTD進行驗證
  • LIBXML_NOBLANKS:刪除空白節點
  • LIBXML_NOCDATA:將CDATA合並為文本節點
  • LIBXML_NOEMPTYTAG:展開空標簽
  • LIBXML_NOENT:替代實體
  • LIBXML_NOERROR:不顯示錯誤報告
  • LIBXML_NONET:加載文檔時禁用網絡訪問
  • LIBXML_NOWARNING:不顯示警告報告
  • LIBXML_NOXMLDECL:保存文檔時刪除XML聲明
  • LIBXML_NSCLEAN:刪除多餘的名稱空間聲明
  • LIBXML_PARSEHUGE:設置XML_PARSE_HUGE標誌
  • LIBXML_XINCLUDE:實現XInclude替換
  • LIBXML_ERR_ERROR:獲取可恢複的錯誤
  • LIBXML_ERR_FATAL:獲取致命錯誤
  • LIBXML_ERR_NONE:沒有錯誤
  • LIBXML_ERR_WARNING:獲取簡單的警告
  • LIBXML_VERSION:獲取libxml版本
  • LIBXML_DOTTED_VERSION:獲取點綴的libxml版本

返回值如果成功,此函數將返回SimpleXMLElement對象,如果失敗,則返回FALSE。

以下示例程序旨在說明simplexml_load_string()函數:

程序1:

<?php 
$note=<<<XML 
<note> 
  <to>User 1</to> 
  <from>User 2</from> 
  <heading>Reminder</heading> 
  <body>Don't forget me this weekend!</body> 
</note> 
XML; 
  
$xml = simplexml_load_string($note); 
echo $xml->to . "<br>"; 
echo $xml->from . "<br>"; 
echo $xml->heading . "<br>"; 
echo $xml->body; 
?>

輸出:

User 1
User 2
Reminder
Don't forget me this weekend!

程序2:

<?php 
$note=<<<XML 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<book> 
    <name>PHP</name> 
    <name>Java</name> 
    <name>C++</name> 
    <name>Python</name> 
</book> 
XML; 
  
$xml=simplexml_load_string($note); 
echo $xml->getName() . "\n"; 
  
foreach($xml->children() as $child){ 
   echo $child->getName() . ": " . $child . "\n"; 
} 
?>

輸出:

book
name : PHP
name : Java
name : C++
name : Python

參考:
http://php.net/manual/en/function.simplexml-load-string.php



相關用法


注:本文由純淨天空篩選整理自Saptarshi_Das大神的英文原創作品 PHP | simplexml_load_string() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。