DOM XML - Obter Nó

Neste capítulo, estudaremos como obter o valor do de um objeto XML DOM. Os documentos XML possuem uma hierarquia de unidades de informação denominadas nós. O objeto Node possui uma propriedade nodeValue , que retorna o valor do elemento.

Nas seções a seguir, discutiremos -

  • Obtendo o valor do nó de um elemento

  • Obtendo valor de atributo de um nó

O node.xml usado em todos os exemplos a seguir é o seguinte -

<Company>
   <Employee category = "Technical">
      <FirstName>Tanmay</FirstName>
      <LastName>Patil</LastName>
      <ContactNo>1234567890</ContactNo>
      <Email>[email protected]</Email>
   </Employee>
   
   <Employee category = "Non-Technical">
      <FirstName>Taniya</FirstName>
      <LastName>Mishra</LastName>
      <ContactNo>1234667898</ContactNo>
      <Email>[email protected]</Email>
   </Employee>
   
   <Employee category = "Management">
      <FirstName>Tanisha</FirstName>
      <LastName>Sharma</LastName>
      <ContactNo>1234562350</ContactNo>
      <Email>[email protected]</Email>
   </Employee>
</Company>

Obter valor do nó

O método getElementsByTagName () retorna uma NodeList de todos os elementos na ordem do documento com um determinado nome de tag.

Exemplo

O exemplo a seguir (getnode_example.htm) analisa um documento XML ( node.xml ) em um objeto XML DOM e extrai o valor do nó do nó filho Firstname (índice em 0) -

<!DOCTYPE html>
<html>
   <body>
      <script>
         if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
         } else{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         xmlhttp.open("GET","/dom/node.xml",false);
         xmlhttp.send();
         xmlDoc = xmlhttp.responseXML;

         x = xmlDoc.getElementsByTagName('FirstName')[0]
         y = x.childNodes[0];
         document.write(y.nodeValue);
      </script>
   </body>
</html>

Execução

Salve este arquivo como getnode_example.htm no caminho do servidor (este arquivo e node.xml devem estar no mesmo caminho em seu servidor). Na saída, obtemos o valor do nó como Tanmay .

Obter valor de atributo

Os atributos fazem parte dos elementos do nó XML. Um elemento de nó pode ter vários atributos exclusivos. O atributo fornece mais informações sobre os elementos do nó XML. Para ser mais preciso, eles definem propriedades dos elementos do nó. Um atributo XML é sempre um par nome-valor. Este valor do atributo é chamado de nó de atributo .

O método getAttribute () recupera um valor de atributo por nome de elemento.

Exemplo

O exemplo a seguir (get_attribute_example.htm) analisa um documento XML ( node.xml ) em um objeto XML DOM e extrai o valor do atributo da categoria Funcionário (índice em 2) -

<!DOCTYPE html>
<html>
   <body>
      <script>
         if (window.XMLHttpRequest) {
            xmlhttp = new XMLHttpRequest();
         } else {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         }
         xmlhttp.open("GET","/dom/node.xml",false);
         xmlhttp.send();
         xmlDoc = xmlhttp.responseXML;

         x = xmlDoc.getElementsByTagName('Employee')[2];
         document.write(x.getAttribute('category'));
      </script>
   </body>
</html>

Execução

Salve este arquivo como get_attribute_example.htm no caminho do servidor (este arquivo e node.xml devem estar no mesmo caminho em seu servidor). Na saída, obtemos o valor do atributo como Gerenciamento .