XML :: Filter :: Domfilter :: libxml

XML :: Filter :: DomFilter :: libxml é um filtro SAX permitindo o processamento Dom de subárvores selecionadas.
Baixe Agora

XML :: Filter :: Domfilter :: libxml Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Petr Pajas
  • Site do editor:
  • http://search.cpan.org/~pajas/

XML :: Filter :: Domfilter :: libxml Tag


XML :: Filter :: Domfilter :: libxml Descrição

XML :: Filter :: DomFilter :: libxml é um filtro SAX permitindo o processamento do DOM de subárvores selecionadas. XML :: Filter :: DomFilter :: libxml é um filtro SAX permitindo o processamento DOM de subtrees selecionadas.Synopsis Use XML :: libxml; Use XML :: Filter :: Domfilter :: libxml; Meu $ Filter = XML :: filtro :: domfilter :: libxml-> novo (manipulador => $ manipulador, xpathcontext => xml :: libxml :: xpathcontext-> new (), processo => / * / bar '=> Process_bar,' BAZ '=> process_baz]); Meu $ parser = XML :: SAX :: YourfavoriteDriver-> Novo (Handler => $ Filter); # Alguns Dom Processing Sub Process_Bar {My ($ Nó) = @ _; meu $ doc = $ node-> proprietário; $ Node-> AppendTextChild ("Nota", "Hallo World!"); $ Node-> ParentNode-> InserTafter ($ doc-> Createelement ("foo"), $ nó); } Sub Process_Baz {My ($ nó) = @ _; $ Node-> UnbindNode; } Este módulo fornece um compromisso entre o processamento Sax e Dom, permitindo usar a API DOM para processar apenas partes razoavelmente pequenas de um documento XML. Ele funciona como um filtro sax que constrói temporariamente pequenas árvores DOM em torno de peças selecionadas por dadas expressões XPath (com algumas limitações, consulte "Limitações"). O filtro tem dois estados que serão referidos como A e B aqui. O estado inicial do filtro é A.in O estado A, apenas uma porção vertical limitada da árvore DOM é construída. Todos os eventos sax que não sejam start_element são imediatamente transmitidos ao manipulador. No evento Start_Element, um novo nó elemento é criado na árvore Dom. Todos os possíveis irmãos existentes do nó recém-criado são removidos. Assim, enquanto no estado A, existe exatamente um nó em todos os níveis da árvore. Agora todas as expressões XPath são verificadas no contexto do nó recém-criado. Se nenhuma das expressões corresponder, o analisador permanecerá no estado A e passa o evento Start_Element para o manipulador. Caso contrário, o retorno de chamada associado à primeira expressão que correspondeu é lembrado e o analisador muda seu estado para B.in State B O filtro constrói uma subárvore Dom completa do novo elemento de acordo com os eventos de transmissão. Nenhum evento é passado para o manipulador nesta fase. Quando a subárvore estiver concluída (isto é, a tag final correspondente é encontrada), o retorno de chamada associado à expressão XPath que correspondeu é executado. O elemento raiz da subárvore é passado para a sub-rotina de retorno de chamada como o único argumento.O retorno de chamada é permitido fazer qualquer operação DOM na subárvore DOM, mesmo para substituí-lo por uma ou mais subestres novas. O Callack deve, no entanto, preservar o nó pai do elemento, bem como todos os nós do ancestral intactos. Não fazer isso pode resultar em um erro ou resultados imprevisíveis. Quando o retorno de chamada retorna, todas as subárvatas que agora aparecem na árvore DOM sob o elemento original, os pais são serializados para os eventos SAX e passados para o manipulador. Depois disso, eles são excluídos da Árvore DOM e o filtro retorna ao estado A.LIMITAÇÕES: · Observe que este tipo de processamento altamente limita a quantidade de informações que o mecanismo XPath pode ser usado. Mais notavelmente, os elementos não podem ser selecionados por seu conteúdo. A única informação presente na árvore no momento da avaliação do XPath é o nome e atributos do elemento e as mesmas informações para todos os seus ancestrais. Não há nada conhecido sobre possíveis nós infantis do elemento, bem como de sua posição dentro de seus irmãos no momento em que as expressões XPath são avaliadas. Requisitos: · Perl.


XML :: Filter :: Domfilter :: libxml Software Relacionado