php處理xml文檔有一個xml_parser_create()函數,關于這個函數我們來看一下.
xml_parser_create() 函數創建 XML 解析器,該函數建立一個新的 XML 解析器并返回可被其它 XML 函數使用的資源句柄.
語法:xml_parser_create(encoding)
參數 描述
encoding 可選,規定輸出編碼
實例代碼如下:
- <?php
- function cdata_handler ($parser, $data) {
- print ($data);
- }
- $xml = "<para>some character data</para>";
- $parser = xml_parser_create ();
- xml_set_character_data_handler ($parser, 'cdata_handler');
- if (xml_parse ($parser, $xml, true))
- print ("Your XML document is well-formed.");
- else
- print ("Your XML document is not well-formed.");
- //開源代碼Vevb.com
- xml_parser_free ($parser);
- ?>
實例二,代碼如下:
- <?php
- $i = 1;
- function default_handler ($p, $data)
- {
- global $i;
- print ("$i: default: $datan");
- $i++;
- }
- function cdata_handler ($p, $data)
- {
- global $i;
- print ("$i: cdata: $datan");
- $i++;
- }
- $xml = "<foo>bar</foo><?exec command ?>";
- $p = xml_parser_create ();
- xml_set_default_handler ($p, 'default_handler');
- xml_set_character_data_handler ($p, 'cdata_handler');
- if (!xml_parse ($p, $xml, true)){
- die (sprintf ("<br />Parse error in <code>%s</code> (%s)",
- htmlspecialchars ($xml),
- xml_error_string (xml_get_error_code ($p))));
- }
- xml_parser_free ($p);
- ?>
實例三代碼如下:
- <?php
- function pi_handler ($p, $target, $data) {
- print ($target);
- print ($data);
- }
- $xml = "<?exec ls -l /var?><rootElement/>";
- $p = xml_parser_create ();
- xml_set_processing_instruction_handler ($p, 'pi_handler');
- if (!xml_parse ($p, $xml, true))
- die (sprintf ("Parse error in <code>%s</code> (%s)",
- htmlspecialchars ($xml),
- xml_error_string (xml_get_error_code ($p))));
- else
- print ("XML processing complete.n");
- xml_parser_free ($p);
- ?>
說明:可選參數 encoding 在 PHP 4 中用來指定要被解析的 XML 輸入的字符編碼方式.
PHP 5 開始,自動偵測輸入的 XML 的編碼,因此 encoding 參數僅用來指定解析后輸出數據的編碼.
在 PHP 4 中,默認輸出的編碼與輸入數據的編碼是相同的,如果傳遞了空字符串,解析器會嘗試搜索頭 3 或 4 個字節以確定文檔的編碼.
在 PHP 5.0.0 和 5.0.1 中,默認輸出的字符編碼是 ISO-8859-1,而 PHP 5.0.2 及以上版本是 UTF-8,解析器支持的編碼有 ISO-8859-1, UTF-8 和 US-ASCII.
新聞熱點
疑難解答