XMLNode - com escopo, global

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 4 min. de leitura
  • A API XMLNode fornece métodos para consultar valores de nós XML. XMLNodes são extraídos de objetos XMLDocument2, que contêm cadeias de caracteres XML.

    Não há construtores para criar uma instância autônoma de um objeto XMLNode. Em vez disso, use o método createElement() de XMLDocument2, que adiciona um nó a um documento existente.

    XMLNode com escopo - getAttribute(String attribute)

    Obtém o valor do atributo.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    attribute Cadeia de caracteres Nome do atributo.
    Tabela 2. Retornos
    Tipo Descrição
    Cadeia de caracteres O valor do atributo.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//two');
    gs.info(node.getAttribute('att'));

    Saída:

    xxx

    XMLNode com escopo - getAttributes()

    Retorna um objeto que contém os atributos do nó como propriedades com valores.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Objeto Contém pares de nome-valor em que o nome é o atributo e o valor é o valor do atributo.

    XMLNode com escopo - getChildNodeIterator()

    Obtém um objeto XMLNodeIterator que pode ser usado para percorrer a lista de nós secundários.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    XMLNodeIterator O objeto do iterador de nó.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
    var iter= node.getChildNodeIterator();
    gs.info(iter.hasNext());

    XMLNode com escopo - getFirstChild()

    Obtém o primeiro nó secundário do nó.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 8. Retorna
    Tipo Descrição
    XMLNode O primeiro nó secundário do nó.
    var xmlString = "<test>" +
                    "<one>" +
                    "<two att=\"xxx\">abcd1234</two>" +
                    "<three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "<two>another</two>" +
                    "</one>" +
                    "<number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
    gs.info(node.getFirstChild());
    Saída:
    <two att="xxx">abcd1234</two>

    XMLNode com escopo - getLastChild()

    Obtém o último nó secundário do nó.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 10. Retorna
    Tipo Descrição
    XMLNode O último secundário do nó.
    var xmlString = "<test>" +
                    "<one>" +
                    "<two att=\"xxx\">abcd1234</two>" +
                    "<three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "<two>another</two>" +
                    "</one>" +
                    "<number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
     
    gs.info(node.getLastChild());
    Saída:
    <two>another</two>

    XMLNode com escopo - getNodeName()

    Obtém o nome do nó. O nome de um nó é determinado pelo tipo de nó. O nome de um nó de elemento de documento é #document. O nome de um nó de texto é #text. O nome de um nó de elemento é o nome do elemento.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 12. Retorna
    Tipo Descrição
    Cadeia de caracteres O nome do nó.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//two');
    gs.info(node.getNodeName());

    Saída:

    two

    XMLNode com escopo - getNodeValue()

    Obtém o valor do nó. O valor de um nó é determinado pelo tipo de nó. Os nós de elemento e elemento de documento retornam nulo.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 14. Retorna
    Tipo Descrição
    Cadeia de caracteres O valor do nó.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//two');
    gs.info(node.getNodeValue());

    Saída:

    null

    XMLNode com escopo - getTextContent()

    Obtém o conteúdo de texto do nó atual. O conteúdo de texto de um nó consiste em todos os nós de texto secundários do nó

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 16. Retorna
    Tipo Descrição
    Cadeia de caracteres O conteúdo de texto do nó atual.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmldoc = new XMLDocument2();
    xmldoc.parseXML(xmlString);
    var node = xmldoc.getNode('//one/two');
    gs.info(node.getTextContent());

    Saída:

    abcd1234

    XMLNode com escopo - hasAttribute (atributo de cadeia de caracteres)

    Determina se o nó tem o atributo especificado.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    attribute Cadeia de caracteres O nome do atributo a ser verificado.
    Tabela 18. Retornos
    Tipo Descrição
    Booliano Verdadeiro se o nó tiver o atributo.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//two');
    gs.info(node.hasAttribute('att'));

    Saída:

    true

    XMLNode com escopo - isCDATANode()

    Indica se o nó CDATA é preservado como um nó separado.

    Use o método XMLDocument2 com escopo - setEnableCDATAReporting (booleano habilitado) para garantir que os nós CDATA sejam preservados e não tratados como texto.

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 20. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se um nó consultado é CDATA ou texto sem formatação.
    Valores válidos:
    • verdadeiro: o nó consultado é CDATA.
    • falso: o nó consultado é texto sem formatação.

    O exemplo a seguir mostra como analisar uma cadeia de caracteres XML com a emissão de relatórios de CDATA habilitada usando XMLDocument2 com escopo - setEnableCDATAReporting (booleano habilitado). O código usa isCDATANode() para mostrar que o primeiro nó consultado na cadeia de caracteres XML é um nó CDATA.

    var xmlString = "<test>" +
      "  <one>" +
      "    <two att=\"xxx\">abcd1234</two>" +
      "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>"+
      "    <four><![CDATA[another]]>element</four>" +
      "  </one>" +
      "  <number>1234</number>" +
      "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.setEnableCDATAReporting(true); // Enables CDATA reporting
    xmlDoc.parseXML(xmlString);
    var content = xmlDoc.getFirstNode('/test/one/four');
    gs.info(content.getFirstChild().isCDATANode());

    Saída:

    true

    XMLNode com escopo - toString()

    Retorna o valor da cadeia de caracteres do nó atual.

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 22. Retorna
    Tipo Descrição
    Cadeia de caracteres O valor da cadeia de caracteres do nó atual.
    var xmlString = "<test>" +
                    "  <one>" +
                    "    <two att=\"xxx\">abcd1234</two>" +
                    "    <three boo=\"yah\" att=\"yyy\">1234abcd</three>" +
                    "    <two>another</two>" +
                    "  </one>" +
                    "  <number>1234</number>" +
                    "</test>";
    var xmlDoc = new XMLDocument2();
    xmlDoc.parseXML(xmlString);
    var node = xmlDoc.getNode('//one');
    gs.info(node.toString());
    Saída: quebras de linha foram adicionadas à saída.
    <one>    
    <two att="xxx">abcd1234</two>    
    <three att="yyy" boo="yah">1234abcd</three>    
    <two>another</two>  
    </one>