PHP xml_set_processing_instruction_handler() 函数

定义和用法

xml_set_processing_instruction_handler() 函数定义当解析器在 XML 文档中找到处理指令时所调用的函数。

处理指令包含在 <? 和 ?> 分隔符中。

如果处理器被成功建立,该函数将返回 true;否则返回 false。

例子:在本例中,处理指令将一个样式表与 XML 文档关联起来:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="default.xsl" type="text/xml"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

语法

xml_set_processing_instruction_handler(parser,Handler)
参数 描述
parser 必需。定义要使用的 XML 解析器。
Handler 必需。定义一个函数。

Handler 参数规定的函数必须有三个参数:

参数 描述
parser 必需。定义一个变量,包含调用处理器的 XML 解析器。
target Erforderlich. Bestimmt die Variable, die das Ziel der Verarbeitungsinstruktion enthält.
data Erforderlich. Bestimmt die Variable, die die Verarbeitungsinstruktion enthält.

Beschreibung

Handler Der Parameter kann auch ein Array sein, das Referenzen auf Objekte und Methodennamen enthält.

Beispiel

<?php
$parser=xml_parser_create();
function char($parser,$data)
  {
  echo $data;
  }
function pi_handler($parser, $target, $data)
  {
  echo "Ziel: $target<br />";
  echo "Daten: $data<br />";
  }
xml_set_character_data_handler($parser,"char");
xml_set_processing_instruction_handler($parser, "pi_handler");
$fp=fopen("test.xml","r");
while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or 
  die (sprintf("XML Fehler: %s in Zeile %d", 
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }
xml_parser_free($parser);
?>