parser PHP XML Expat
Built-in analisador PHP Expat faz com que seja possível processar documentos XML.
O que é XML?
XML é usado para descrever os dados e se concentrar no que dados Sim. ficheiro XML descreve a estrutura dos dados.
Em XML, não há tags predefinidas. Você deve definir suas próprias tags.
Para saber mais sobre XML, por favor visite nosso tutorial XML .
O que Expat sim?
Para ler e atualizar - criar e processo - um documento XML, você precisa de um parser XML.
Existem dois tipos básicos de analisadores de XML:
- parser baseado em árvore: Este analisador transforma um documento XML em uma estrutura de árvore. Ele analisa o documento inteiro, e fornece acesso aos elementos na árvore, como o Document Object Model (DOM).
- parser baseado em eventos: O documento XML como uma série de eventos. Quando ocorre um evento específico, o analisador irá chamar a função para processar.
analisador Expat é analisador baseado em eventos.
foco analisador baseado em evento sobre o conteúdo de um documento XML, em vez de sua estrutura. Devido a isso, analisador baseado em eventos podem acessar os dados mais rapidamente do que parser baseado em árvore.
Considere o seguinte fragmento de XML:
parser baseado em eventos relata o XML acima como uma série de três eventos:
- Inicie elemento: a partir de
- Iniciar seção CDATA, value: Jani
- Fechar elemento: a partir de
XML de exemplo acima contém XML bem formado. Mas este exemplo não é XML válido, porque a declaração de tipo de documento (DTD) não está associado a ele.
No entanto, quando se utiliza o analisador Expat, isso não faz diferença. analisador Expat não é verificada para a validade, ignorar qualquer DTD.
Como validar non-parser baseado em eventos, XML, Expat rápido e leve, muito adequado para aplicações Web PHP.
Nota: documento XMLdeve ser bem formado, caso contrário Expat irá gerar um erro.
instalar
Funções para analisar XML Expat fazem parte do núcleo do PHP. Nenhuma instalação necessária para utilizar estas funções.
arquivo XML
O arquivo XML a seguir serão usados no nosso exemplo:
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Inicializar o analisador XML
Queremos inicializar o analisador XML no PHP, definir processador para diferentes eventos XML e, em seguida, analisar o arquivo XML.
Exemplos
//Initialize the XML parser
$parser=xml_parser_create();
//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
{
switch($element_name)
{
case "NOTE":
echo "-- Note --<br>";
break;
case "TO":
echo "To: ";
break;
case "FROM":
echo "From: ";
break;
case "HEADING":
echo "Heading: ";
break;
case "BODY":
echo "Message: ";
}
}
//Function to use at the end of an element
function stop($parser,$element_name)
{
echo "<br>";
}
//Function to use when finding character data
function char($parser,$data)
{
echo $data;
}
//Specify element handler
xml_set_element_handler($parser,"start","stop");
//Specify data handler
xml_set_character_data_handler($parser,"char");
//Open XML file
$fp=fopen("test.xml","r");
//Read data
while ($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or
die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
//Free the XML parser
xml_parser_free($parser);
?>
O código acima exibirá:
To: Tove
From: Jani
Heading: Reminder
Message: Don't forget me this weekend!
Como funciona:
- Por xml_parser_create () função inicializa o analisador XML
- Criar com função de manipulador de eventos diferentes
- Adicionar xml_set_element_handler () para definir, qual função a ser executada quando o analisador encontra as tags de início e fim
- Adicionar xml_set_character_data_handler () para definir, qual função a ser executada quando o analisador encontra dados de caracteres
- Por xml_parse () para analisar o arquivo "test.xml"
- No caso de haver um erro, em seguida, adicione xml_error_string () para converter texto de descrição de erro XML
- Chamada xml_parser_free () para liberar atribuído a xml_parser_create (função de memória)
Mais informações analisador PHP Expat
Para mais informações sobre as funções PHP Expat, visite o nosso XML PHP Manual do Analisador de referência .