[Risolto] xml getElementById come funziona?
Inviato: lunedì 2 dicembre 2024, 22:34
Il bello di LibreOffice è che ha tante librerie API con services potenti ed utili ai più svariati scopi.
Il brutto di LibreOffice è che la documentazione delle stesse (sdk) è veramente scarna e addetta soprattutto a chi le cose le conosce già, e manca assolutamente di esempi significativi, questo sconforta ed allontana chi vuole avvicinarsi e cimentarsi nel creare macro od applicativi.
Veniamo ad un esempio, il modulo xml è sicuramente interessante, se voglio scrivere qualcosa che sia gestibile ad albero, come un manuale a capitoli e sottocapitoli, mi sembra la soluzione ideale.
Prendiamo un semplice file xml che contiene degli ID univoci :
Lo carico nel DOM :
Ora vorrei recuperare l'elemento il cui ID="B", e vedo che l'interfaccia xDocument ha il metodo getElementById(string elementId), quindi
Purtroppo questo non funziona, penso che ovviamente in qualche punto bisogna dire che il mio ID è una key di un qualche dictionary, ma nonostante varie ricerche non sono stato in grado di trovare niente, ovviamente men che meno nella documentazione delle API.
Qualcuno ha due righe di codice funzionante ??
Grazie e un saluto a tutti gli amanti del coding
Il brutto di LibreOffice è che la documentazione delle stesse (sdk) è veramente scarna e addetta soprattutto a chi le cose le conosce già, e manca assolutamente di esempi significativi, questo sconforta ed allontana chi vuole avvicinarsi e cimentarsi nel creare macro od applicativi.
Veniamo ad un esempio, il modulo xml è sicuramente interessante, se voglio scrivere qualcosa che sia gestibile ad albero, come un manuale a capitoli e sottocapitoli, mi sembra la soluzione ideale.
Prendiamo un semplice file xml che contiene degli ID univoci :
Codice: Seleziona tutto
<?xml version="1.0" encoding="UTF-8"?>
<Root ID="0">
<Elem ID="A" Txt="Capitolo A"></Elem>
<Elem ID="B" Txt="Capitolo B"></Elem>
</Root>
Codice: Seleziona tutto
Dim oDocB : oDocB = CreateUnoService("com.sun.star.xml.dom.DocumentBuilder")
Dim xDoc : xDoc = oDocB.parseURI(sXmlPath) ' percorso del file xml
Codice: Seleziona tutto
Dim MyElem : MyElem = xDoc.getElementById("B")
Qualcuno ha due righe di codice funzionante ??
Grazie e un saluto a tutti gli amanti del coding