v1.0
Comando

XmlNodeList()

Seleciona um conjunto de nós XML por uma expressão XPath e carrega o XML externo de cada nó em uma variável de lista. Utilizado como fonte de dados para o Foreach(), iterando nó por nó.

Propriedades disponíveis dentro do Foreach:
$variavel.Count: total de nós encontrados pelo XPath
$variavel.$Item: XML externo completo do nó atual (OuterXml), incluindo a tag do nó e seu conteúdo

Os namespaces XML são removidos automaticamente (sem necessidade de prefixos nas expressões XPath). O XPath é avaliado a partir do elemento raiz (DocumentElement). Use funções como GetXmlNodeText() para extrair valores de sub-elementos do $Item.
Sintaxe
XmlNodeList(variavel, xml, xpath)

Parâmetros

ParâmetroObrigatórioDescrição
variavelSimNome da variável de lista. Deve começar com $. Ex: $nos.
xmlSimString contendo o XML completo a processar. Os namespaces XML são removidos automaticamente antes do parse.
xpathSimExpressão XPath para selecionar os nós. Avaliada a partir do elemento raiz do XML. Ex: '//item', 'pedidos/pedido', '//nota[@tipo=\'entrada\']'.

Exemplos

AthusScript
// XML de NF-e: iterar produtos de uma nota fiscal:
string $xmlNota = GetFileText(@'C:\nfes\nota.xml')
XmlNodeList($produtos, $xmlNota, '//det')
Output('Total de produtos: ' + $produtos.Count)
Foreach ($produtos) {
  // $produtos.$Item contém o XML externo do nó <det>...</det>
  string $descricao = GetXmlNodeText($produtos.$Item, '//xProd')
  string $quantidade = GetXmlNodeText($produtos.$Item, '//qCom')
  string $valor = GetXmlNodeText($produtos.$Item, '//vProd')
  Output($descricao + ' x' + $quantidade + ' = R$ ' + $valor)
}

// Iterar elementos de uma resposta SOAP/REST XML:
XmlNodeList($itens, $respostaXml, '//resultados/item')
Foreach ($itens) {
  string $id = GetXmlNodeText($itens.$Item, '//id')
  string $status = GetXmlNodeText($itens.$Item, '//status')
  AthusDBUpdate('tbc_MSL6000', '$status', 'id='+$id)
}