roXMLElement
16 min
este objeto se utiliza para contener un árbol xml el equivalente en javascript es domparser() el objeto roxmlelement se crea sin parámetros createobject("roxmlelement") los siguientes ejemplos ilustran cómo se analizan los elementos xml en brightscript \<tag1>this is example text\</tag1> nombre = tag1 atributos = invalid cuerpo = rostring que contiene "this is example 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 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 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