Análisis de XML con elementos que contienen de colon / espacio de nombres
-
28-09-2019 - |
Pregunta
El uso de XML para analizar un documento XML en Google Apps Script: http://code.google.com/googleapps/appsscript/articles/XML_tutorial .html # howItWorks
Pero esto no funciona (no de análisis) si hay dos puntos en el nombre del elemento. A pesar de que tal vez el espacio de nombres, es un único espacio de nombres en todo el documento XML.
<aws:elementname>...</aws:elementname>
Se trata de un problema sólo con XML del google o es genérico?
Solución
Simplemente no envíe argumento como verdadera.
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");
Otros consejos
Es sin duda no es un problema general. Sin duda hay analizadores XML que los espacios de nombres de la manija.
Sospecho que es una limitación del código tutorial y que las bibliotecas de Google en realidad puede manejar espacios de nombres, pero es algo conjeturas de mirar a los documentos de la API.
El código tutorial está utilizando llamadas como
var movies = doc.html.head.getElements("movie");
que parece ser una versión no-espacio de nombres de cuenta.
Hay una sobrecarga de este método que toma una URL espacio de nombres también, y lo que puede que tenga que utilizar si hay un espacio de nombres en cuestión.
Si desea utilizar un poco de espacio de nombres, tiene que declarar por primera vez. Por ejemplo:.
<root xmlns:aws="some-uri">
<aws:elementname />
</root>