| 4D v20.1DOM Find XML element | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v20.1
 DOM Find XML element 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DOM Find XML element ( refElemento ; xPath {; arrRefElementos} ) -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| refElemento | String |   | Referência de elemento XML | |||||
| xPath | Texto |   | Rota XPath do elemento a procurar | |||||
| arrRefElementos | Array string |   | Lista de referências de elementos encontradas (se aplicável) | |||||
| Resultado | String |   | Referência do elemento encontrado (se aplicável) | |||||
O comando DOM Find XML element permite buscar os elementos XML específicos em uma estrutura XML. A pesquisa começa pelo elemento determinado pelo parâmetro refElemento.
O nó XML a buscar está definido pelo parâmetro xPath, expresso em notação XPath (para saber mais ver a seção Uso da notação XPathn (DOM)).). Podem ser usadas as expressões de rota abaixo
| Expressão | Ação | 
| nodename | Seleciona todos os nodos filhos de nodo de contexto com o nome "nodename" | 
| / | Seleciona os nodos do nodo raíz (rota absoluta) | 
| // | Seleciona os nodos no documento do nodo atual que coincidem com a seleção sem importar onde são encontrados | 
| @ | Seleciona atributos | 
| . | Seleciona o nodo atual | 
| .. | Seleciona o pai do nodo atual | 
| * | Seleciona todos os elementos filhos do nodo de contexto | 
| @* | Seleciona todos os atributos do nodo de contexto | 
| text() | Seleciona todos os atributos do nodo de contexto | 
| node() | Seleciona todos os filhos do nodo de contexto, sem importar o tipo de nodo | 
| local-name() | Devolve uma string que representa o nome local do primeiro nodo de um conjunto de nodos dado | 
| para[1] | Seleciona o primeiro filho "para" do nodo de contexto | 
| para[last()] | Seleciona o último filho secundário do nodo de contexto | 
| chapter[title="Introduction"] | Seleciona os capítulos filhos de nodo de contexto que têm um ou mais filhos títulos com um valor de string igual a Introduction | 
| chapter[title] | Seleciona os capítulos filhos do nodo de contexto que tenham um ou mas filhos "títulos" | 
| para[@type="warning"] | Seleciona todos os filhos "para" do nodo de contexto que tenham um atributo "type" com o valor "warning" | 
| para[@type="warning"][5] | Seleciona o quinto filho secundario do nodo de contexto que tenha um atributo "type" com o valor "warning" | 
| para[5][@type="warning"] | Seleciona o quinto filho secundario do nodo de contexto se esse filho tiver um atributo "type" com o valor "warning" | 
| //title | //price | Seleciona todos os elementos de título e preço no documento | 
Nota de compatibilidade: a partir de v18 R3, a implementação  XPath é mais compatível e permite a compatibilidade  das expressões anteriores. Por razões de compatibilidade, a implementação não padrão anterior é mantidade de forma pré-determinada nos bancos de dados convertidos. Se quiser se beneficiar das funções estendidas em seus bancos de dados convertidos, deve selecionar a opção de compatibilidade Utilizar XPath de Página Compatibilidade. 
Nota: as pesquisas diferenciam entre maiúsculas e minúsculas.
O comando devolve a referência XML dos elementos encontrados. Quando passar o array de strings arrRefElement, o comando o preenche com a lista de referências XML encontradas. Neste caso, o comando devolve o primeiro elemento de array arrRefElement como resultado. Este parâmetro é útil quando existirem vários elementos com o mesmo nome no local especificado pelo parâmetro xRuta.
Este exemplo permite buscar rapidamente um elemento XML e mostrar seu valor:
 vEncontrado:=DOM Find XML element(vRefElem;"Items/Book[15]/Title")
 DOM GET XML ELEMENT VALUE(vEncontrado;valor)
 ALERT("O valor do elemento é: \""+valor+"\"")A mesma pesquisa também pode ser realizada desta forma:
 vEncontrado:=DOM Find XML element(vElemRef;"Items/Book[15]")
 vEncontrado:=DOM Find XML element(vEncontrado;"Book/Title")
 DOM GET XML ELEMENT VALUE(vEncontrado;valor)
 ALERT("O valor do elemento é: \""+valor+"\"")Nota: Como é mostrado no exemplo anterior, a rota XPath deve sempre começar pelo nome do elemento atual. Esta precisão é importante quando maneja rotas XPath relativas.
Dada a seguinte estrutura XML:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Root>
   <Elem1>
      <Elem2>aaa</Elem2>
      <Elem2>bbb</Elem2>
      <Elem2>ccc</Elem2>
   </Elem1>
</Root>O código abaixo permite recuperar a referência de cada elemento Elem2 no array arrEncontrados:
 vElemRef:=DOM Parse XML source("example.xml")
 ARRAY TEXT(arrAfound;0)
 vFound:=DOM Find XML element(vElemRef;"/Root/Elem1/Elem2";arrAfound)Se quiser selecionar todos os elementos "rect" com atributos "class" que contenham a string "bgcontainer":
 $node:=DOM Find XML element($root;" //rect[contains(@class,'bgcontainer')")Se o comando for executado corretamente, a variável sistema OK assume o valor1. Do contrário, assume o valor 0 e um erro é gerado.
Um erro é gerado quando:
	Produto: 4D
	Tema: XML DOM
	Número 
        864
        
        
        
	
	Modificado: 4D v11 SQL  
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Manual de linguagem 4D ( 4D v20)
	
	
	Manual de linguagem 4D ( 4D v20.1)
	
	
	
 Adicionar um comentário
Adicionar um comentário