PHP Conference Japan 2024

xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

xml_parser_create_ns建立支援命名空間的 XML 解析器

說明

xml_parser_create_ns(?string $encoding = null, string $separator = ":"): XMLParser

xml_parser_create_ns() 會建立一個支援 XML 命名空間的新 XML 解析器,並回傳一個 XMLParser 實例,供其他 XML 函式使用。

參數

encoding

輸入編碼會自動偵測,因此 encoding 參數僅指定輸出編碼。預設輸出字元集為 UTF-8。支援的編碼有 ISO-8859-1UTF-8US-ASCII

separator

使用支援命名空間的解析器時,傳遞給各種處理函式的標籤參數將由命名空間和標籤名稱組成,並以 separator 中指定的字串分隔。

回傳值

回傳一個新的 XMLParser 實例。

更新日誌

版本 說明
8.0.0 此函式現在回傳一個 XMLParser 實例;先前,它回傳一個 資源,或者在失敗時回傳 false
8.0.0 encoding 現在可以為 null。

參見

新增筆記

使用者貢獻的筆記 2 則筆記

jonnyNO at SPAM dot sanriowasteland dot net
22 年前
這段文字摘錄自 Clark Cooper 的 Expat 函式參考,它是 C API 的參考。

"XML_Parser XML_ParserCreateNS(const XML_Char*encoding, XML_Char sep)
建構一個啟用命名空間處理的新解析器。命名空間展開的元素名稱和屬性名稱會以命名空間 URI、sep 和名稱的本地部分的串接形式返回。這表示您應該為 sep 選擇一個不能成為合法 URI 一部分的字元。"

(來自 http://www.xml.com/pub/a/1999/09/expat/reference.html)

所以這就是這個函式的用途。現在您知道了。
bishop at php dot net
5 年前
內部人員已提議[1] 將此擴充套件從基於資源的改為基於物件的。進行此更改後,xml_parser_create_ns 將返回一個物件,而不是資源。鼓勵應用程式開發人員將任何明確的成功檢查,例如

<?php
$res
= xml_parser_create_ns(/*...*/);
if (!
is_resource($res)) {
// ...
}
?>

改為檢查明確的失敗
<?php
$res
= xml_parser_create_ns(/*...*/);
if (
false === $res) {
// ...
}

[
1]: https://marc.info/?l=php-internals&m=154998365013373&w=2
To Top