Árvore de páginas

O método adiciona um array de namespaces ao nó elemento da expressão XPath.

Sintaxe

XPathAddNsList( < cXPathExpr >, < aAttr > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cXPathExpr

caractere

Expressão XPath.

X


aAttr

vetor

Array de namespaces para serem inseridos.

X


Retorno

Nome

Tipo

Descrição

lRet

lógico

Verdadeiro (.T.) caso tenha sido possivel adicionar. Falso (.F.) caso contrário.

Observações

  • O valor contido em <cXPathExpr> deve ser informado de acordo com o case no XML. Esta implementação é case sensitive.
  • O array deve conter pares com o nome e o valor dos namespaces que serão adicionados.
  • Em builds superiores a 7.00.131227-20140929 existem correções no método, pois estava invertendo os valores de prefixo e endereço; e estava adicionando namespaces com URL vazia.

Exemplos

Exemplo 1
user function XPANsArr()
  Local cXML := ""
  Local oXML
  Local aNS := {}
  
  oXML := TXMLManager():New()
  
  cXML += '<book xmlns="http://myurl.com" isNew="true">' + CRLF
  cXML += '  <title>A Clash of Kings</title>' + CRLF
  cXML += '  <author>George R. R. Martin</author>' + CRLF
  cXML += '  <price>9.99</price>' + CRLF
  cXML += '  <origin>US</origin>' + CRLF
  cXML += '</book>' + CRLF
  
  if !oXML:Parse( cXML )
    conout( "Errors on Parse!" )
    return
  endif
  
  oXML:XPathRegisterNs( "ns", "http://myurl.com" )
  
  // Vai exibir
  // aNS -> ARRAY (    1) [...]
  //      aNS[1] -> ARRAY (    2) [...]
  //           aNS[1][1] -> C (    5) [xmlns]
  //           aNS[1][2] -> C (   16) [http://myurl.com]
  aNS := oXML:XPathGetNsList( "/ns:book" )
  varinfo( "aNS", aNS )
  
  // Vai exibir ".F."
  aNS := { { "ns1", "http://otherurl.com" } }
  conout( oXML:XPathAddNsList( "/song", aNS ) )
  
  // Vai exibir ".F."
  aNS := { { "ns1", "http://otherurl.com" } }
  conout( oXML:XPathAddNsList( "/ns:song", aNS ) )
  
  // Vai exibir ".F."
  aNS := { { "ns1", "http://otherurl.com" } }
  conout( oXML:XPathAddNsList( "/book", aNS ) )
  
  // Vai exibir ".F."
  aNS := { { "", "http://otherurl.com" } }
  conout( oXML:XPathAddNsList( "/ns:book", aNS ) )
  
  // Vai exibir ".F."
  aNS := { { "ns1", "" } }
  conout( oXML:XPathAddNsList( "/ns:book", aNS ) )
  
  // Vai exibir ".T."
  aNS := { { "ns1", "http://otherurl.com" } }
  conout( oXML:XPathAddNsList( "/ns:book", aNS ) )
  
  // Vai exibir
  // aNS -> ARRAY (    2) [...]
  //      aNS[1] -> ARRAY (    2) [...]
  //           aNS[1][1] -> C (    5) [xmlns]
  //           aNS[1][2] -> C (   16) [http://myurl.com]
  //      aNS[2] -> ARRAY (    2) [...]
  //           aNS[2][1] -> C (    3) [ns1]
  //           aNS[2][2] -> C (   19) [http://otherurl.com]
  aNS := oXML:XPathGetNsList( "/ns:book" )
  varinfo( "aNS", aNS )
return
  • Sem rótulos