Analisi XML con elementi contenenti colon / namespace
-
28-09-2019 - |
Domanda
Utilizzo di XML per analizzare un documento XML in Google Apps Script: http://code.google.com/googleapps/appsscript/articles/XML_tutorial .html # howitworks
Ma questo non funziona (parse non riesce) se v'è un colon nel nome dell'elemento. Anche se forse lo spazio dei nomi, è un singolo spazio dei nomi in tutto il documento XML.
<aws:elementname>...</aws:elementname>
E 'questo è un problema solo con XML di Google o è generico?
Soluzione
Proprio non inviare argomento come vero.
var oXML = Xml.parse(sXML, false);
var root = oXML.getElement();
var topElement = root.getElements("http://namespace-uri","topElement");
var childElement = topElement[0].getElements("http://namespace-uri","childElement");
Altri suggerimenti
Non è sicuramente un problema generale. Ci sono certamente parser XML che namespace maniglia.
Ho il sospetto che sia una limitazione del codice di tutorial e che le librerie di Google in realtà in grado di gestire spazi dei nomi, ma è un po 'congetture dal guardare la documentazione API.
Il codice di esercitazione sta usando chiamate come
var movies = doc.html.head.getElements("movie");
che sembra essere una versione non-namespace-aware.
C'è un sovraccarico di questo metodo che accetta un URL namespace come bene, e che potrebbe essere necessario utilizzare se c'è uno spazio dei nomi coinvolti.
Se si desidera utilizzare un po 'di spazio dei nomi, si deve dichiarare un primo momento. Per esempio:.
<root xmlns:aws="some-uri">
<aws:elementname />
</root>