---
title: roXMLElement
slug: develop/es/roxmlelement
docTags: 
createdAt: 2025-03-11T07:07:17.200Z
---

Este objeto se utiliza para contener un árbol XML. El equivalente en JavaScript es `DOMParser()`.

El objeto *roXMLElement* se crea sin parámetros: 

```text
CreateObject("roXMLElement")
```

Los siguientes ejemplos ilustran cómo se analizan los elementos XML en BrightScript:

```text
<tag1>This is example text</tag1>
```

- Nombre = tag1
- Atributos = Invalid
- Cuerpo = *roString* que contiene "This is example text"

```text
<tag2 caveman="barney"/>
```

- Nombre = tag2
- Atributos = *roAssociativeArray* con una entrada, `{troglodita, Barney}`
- Cuerpo = Invalid

Si la etiqueta contiene otras etiquetas, el cuerpo será de tipo *roXMLList*.

Para generar contenido XML, cree un *roXMLElement* y llame a los métodos `SetBody()` y `SetName()` para construirlo; luego llame al método `GenXML()` para generarlo.

### Ejemplo

```text
root.SetName("myroot")
root.AddAttribute("key1","value1")
root.AddAttribute("key2","value2")
ne=root.AddBodyElement()
ne.SetName("sub")
ne.SetBody("this is the sub1 text")
ne=root.AddBodyElement()
ne.SetName("subelement2")
ne.SetBody("more sub text")
ne.AddAttribute("k","v")
ne=root.AddElement("subelement3")
ne.SetBody("more sub text 3")
root.AddElementWithBody("sub","another sub (#4)")
PrintXML(root, 0)
print root.GenXML(false)
```

## ifXMLElement

### GetBody() As Object

### GetAttributes() As Object

### GetName() As String

### GetText() As String

### GetChildElements() As Object

### GetNamedElements(a As String) As Object

### GetNamedElementsCi(a As String) As Object

### SetBody(a As Object)

Genera un *roXMLList* para el cuerpo si es necesario. Luego, el método agrega el elemento pasado (que debe ser una etiqueta *roXMLElement*).

### AddBodyElement() As Object

### AddElement(a As String) As Object

### AddElementWithBody(a As String, b As Object) As Object

### AddAttribute(a As String, b As String)

### SetName(a As String)

### Parse(a As String) As Boolean

Analiza el contenido XML que se le pasa. En caso de error, este método devuelve False. Sin embargo, también rellena *roXMLElement* con cualquier texto que se haya podido analizar correctamente. Para evitar pasar cadenas erróneas, siempre es mejor que el script verifique el valor de retorno de `Parse()` antes de utilizarlas.

### GenXML(a As Boolean) As String

Genera contenido XML. Este método toma un único parámetro Boolean, que indica si el XML debe tener o no una etiqueta `<?xml …>` en la parte superior.

### Clear() As Void

### GenXMLHdr(a As String) As String

### IsName(a As String) As Boolean

### HasAttribute(a As String) As Boolean

### ParseFile(a As String) As Boolean

## Ejemplo

Este ejemplo de subrutina imprime el contenido de un árbol *roXMLElement*:

```text
PrintXML(root, 0)

Sub PrintXML(element As Object, depth As Integer)
    print tab(depth*3);"Name: ";element.GetName()
    if not element.GetAttributes().IsEmpty() then
        print tab(depth*3);"Attributes: ";
        for each a in element.GetAttributes()
            print a;"=";left(element.GetAttributes()[a], 20);
            if element.GetAttributes().IsNext() then print ", ";
        end for
        print
    end if
    if element.GetText()<>invalid then
        print tab(depth*3);"Contains Text: ";left(element.GetText(), 40)
    end if
    if element.GetChildElements()<>invalid
        print tab(depth*3);"Contains roXMLList:"
        for each e in element.GetChildElements()
            PrintXML(e, depth+1)
        end for
    end if
    print
end sub
```

