PHP simplexml_load_string() 函數

PHP SimpleXML 參考手冊 PHP SimpleXML 參考手冊

實例

轉換形式良好的 XML 字串為 SimpleXMLElement 對象,然後輸出對象的鍵和元素:

<?php
$note=<<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML;

$xml=simplexml_load_string($note);
print_r($xml);
?>


定義和用法

simplexml_load_string() 函數轉換形式良好的 XML 字串為 SimpleXMLElement 對象。


語法

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

參數 描述
data 必需。規定形式良好的 XML 字串。
classname 可選。規定新對象的 class。
options 可選。規定附加的 Libxml 參數。通過指定選項為 1 或 0(TRUE 或 FALSE,例如 LIBXML_NOBLANKS(1))進行設置。

可能的值:

  • LIBXML_COMPACT - 啟動節點的優化配置(可加速應用程式)
  • LIBXML_DTDATTR - 設置默認的 DTD 屬性
  • LIBXML_DTDLOAD - 裝載額外的子集
  • LIBXML_DTDVALID - 驗證 DTD 有效性
  • LIBXML_NOBLANKS - 刪除空節點
  • LIBXML_NOCDATA - 將 CDATA 設置為文本節點
  • LIBXML_NOEMPTYTAG - 擴展空標籤(例如 <br/> 到 <br></br>),僅在 DOMDocument->save() 和 DOMDocument->saveXML() 函數中有效
  • 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 版本(例如 20605 或 20617)
  • LIBXML_DOTTED_VERSION - 獲取帶點的 libxml 版本(例如 2.6.5 或 2.6.17)
ns 可選。規定命名空間首碼或 URI。
is_prefix 可選。規定一個布爾值。如果 ns 是首碼則為 TRUE,如果 ns 是 URI 則為 FALSE。默認是 FALSE。

技術細節

返回值: 如果成功則返回 SimpleXMLElement 對象,如果失敗則返回 FALSE。
PHP 版本: 5+


更多實例

實例 1

輸出 XML 字串中每個元素的數據:

<?php
$note=<<<XML
<note>
<to>Tove</to>
<from>Jani</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;
?>


實例 2

輸出 XML 字串中每個子節點的元素名稱和數據:

<?php
$note=<<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML;

$xml=simplexml_load_string($note);
echo $xml->getName() . "<br>";

foreach($xml->children() as $child)
{
echo $child->getName() . ": " . $child . "<br>";
}
?>



PHP SimpleXML 參考手冊 PHP SimpleXML 參考手冊