PBToolboxAI v3 ← Site

xmltree — u_pbt_xmltree #

← Referencia de componentes · Índice de la guía

xmltree muestra un valor XML como un árbol plegable, coloreado: una pantalla de configuración, una respuesta de API, una depuración de integración. Fija el texto XML en is_xml, el componente lo muestra; un clic en un nodo reporta su ruta (ue_node_clicked), un XML inválido lanza ue_error. No modifica nada: es un VISOR.

▶ Verlo en vivo — Aplicación de demostración, mosaico XML tree, con el código y esta página lado a lado.


De un vistazo #

Userobjectu_pbt_xmltree
EntradaEl texto XML, en is_xml (una cadena)
Plegar / desplegarCada contenedor con su chevrón, o todo de una vez (of_expand_all, of_collapse_all)
RetornoUn clic en un nodo da su ruta (ue_node_clicked); un XML inválido lanza ue_error

Inicio rápido #

// Show an XML response as a tree
uo_xml.is_xml = inv_rest.of_response_text()

// Fold everything, then let the user open what interests them
uo_xml.of_collapse_all()

// ue_node_clicked : the path of the node clicked ("/order/lines/line[2]/@sku")
// -> an attribute node is .../@name

Propiedades #

PropiedadTipoPredeterminadoDescripción
is_xmlstring""El texto XML a mostrar. Un objeto, un array, un valor; leído y mostrado como árbol. Vacío borra el árbol; un XML inválido lanza ue_error y no muestra nada
ib_wrapbooleantrueLas líneas largas se ajustan (true, por defecto) o se quedan en una línea con barra horizontal (false) — un aspecto de editor de código
ib_search_enabledbooleantrueCtrl+F en el árbol abre un cuadro de búsqueda — la misma búsqueda que of_search: escribir resalta, Intro siguiente, Mayús+Intro anterior, Esc cierra. false deja el atajo a una aplicación que busca desde su propio cuadro
is_theme_stylestringfluentEstilo visual del componente (constantes THEME_STYLE_*)
is_theme_modestringlightVariante clara u oscura (constantes THEME_MODE_*)
il_theme_accentlong-1Color de acento de este componente (-1 = acento del tema)
is_tooltipstring""Tooltip simple mostrado al pasar el ratón por el componente
is_super_tooltip_titlestring""Título del tooltip enriquecido (prevalece sobre is_tooltip)
is_super_tooltip_textstring""Texto del tooltip enriquecido (se acepta el marcado enriquecido)
is_super_tooltip_imagestring""Imagen del tooltip enriquecido

Métodos #

MétodoDescripción
of_expand_all ( ) → longDespliega cada contenedor. Devuelve 0, -1 si el componente no está creado
of_collapse_all ( ) → longPliega cada contenedor anidado (el nivel superior queda visible). Devuelve 0, -1 si el componente no está creado
of_clear ( ) → longVacía el árbol (como is_xml = ""). Devuelve 0, -1 si el componente no está creado
of_expand_to_level ( long al_level ) → longMuestra el árbol hasta al_level: los elementos a esa profundidad o más se pliegan (1 = los hijos directos de la raíz, 0 pliega la raíz)
of_search ( string as_query ) → longResalta cada aparición (sin distinguir mayúsculas) y salta a la primera, abriendo todo ancestro plegado; ue_search_result dice cuántas. Una consulta vacía borra la búsqueda. El cuadro de búsqueda se abre con la consulta dentro y el foco en él (el mismo que Ctrl+F): Intro pasa a la siguiente; con ib_search_enabled en false el árbol solo resalta
of_search_next ( ) → longPasa a la SIGUIENTE coincidencia (vuelve a la primera tras la última); ue_search_result informa la nueva posición
of_search_prev ( ) → longPasa a la coincidencia ANTERIOR (vuelve a la última antes de la primera); ue_search_result informa la nueva posición
of_clear_search ( ) → longDescarta la búsqueda: sin resaltados ni coincidencia actual (of_match_count devuelve 0); el cuadro de búsqueda se vacía y se cierra
of_select_path ( string as_path ) → longSelecciona y desplaza hasta la línea en as_path SIN lanzar un evento (la app lo dirigió)
of_selected_path ( ) → stringLa ruta de la línea seleccionada, leída EN VIVO (/r/b/c, /r/a/@id) — lo que copia un botón Copiar. Vacío si nada está seleccionado
of_selected_value ( ) → stringEl texto de la línea seleccionada cuando es una HOJA (el texto de un elemento, el valor de un atributo), leído EN VIVO. Vacío para un elemento contenedor o sin selección
of_match_count ( ) → longDevuelve cuántas coincidencias encontró la búsqueda actual, leído EN VIVO — el 12 de una barra de estado 3 / 12. 0 sin búsqueda
of_match_index ( ) → longDevuelve la posición (1-based) de la coincidencia actual, leída EN VIVO — el 3 de una barra de estado 3 / 12. 0 sin coincidencia

Eventos #

EventoCuándo
ue_node_clicked (string as_path)El usuario hizo clic en un nodo: su ruta de acceso (/order/lines/line[2]/@sku), a releer en sus datos
ue_selection_changed (string as_path)La línea seleccionada cambió por TECLADO (flechas, Inicio/Fin) — un clic de ratón reporta ue_node_clicked
ue_search_result (long al_count, long al_index)Una búsqueda se ejecutó o avanzó: al_count coincidencias en total, la actual es al_index (1-based, 0 si ninguna) — para un « 3 / 12 »
ue_error (string as_message)El texto en is_xml no es un XML válido: el mensaje dice por qué, el árbol queda vacío

Ejemplo #

Explorar la respuesta de una API #

if inv_rest.of_get("https://api.example.com/orders/4152") = 200 then
	uo_xml.is_xml = inv_rest.of_response_text()
	uo_xml.of_collapse_all()          // the reader opens what interests them
else
	uo_xml.of_clear()
end if

Buenas prácticas #


Heredado de la base común #

Estos miembros existen en todos los componentes visuales — no son propios de este. Se detallan una sola vez, en los capítulos transversales; esta tabla solo dice dónde leerlos.

MiembrosFunciónDetallado en
of_resetPoner el componente a cero3.6 Poner un componente a cero: of_reset()
of_register_shortcut · of_clear_shortcutsAtajos de teclado del componente3.5 Los atajos de teclado
of_is_created · of_is_ready · of_get_last_errorSi ha nacido, si está listo, qué ha fallado3.7 Diagnóstico
of_save_as_png · of_save_as_jpgExportar el render como imagen3.8 Exportar la representación como imagen
of_set_redrawAgrupar los cambios en un solo repintado3.10 Buenas prácticas
of_preload_iconsIconos mostrados sin retardoVisualización instantánea: of_icon
of_set_translationTraducir una etiqueta del componente5.2 Adaptar una etiqueta: of_set_translation
of_focus_webviewDar el foco al componente6.4 Teclado y foco
of_print · of_print_to_pdfImprimir, o escribir un PDF6.9 Imprimir
of_set_property · of_get_property · of_component_nameControlar una propiedad por su nombre3.1 El motor de propiedades

← Referencia de componentes · Índice de la guía