Question

Utilisation Xml pour analyser un document XML dans Google Apps Script: http://code.google.com/googleapps/appsscript/articles/XML_tutorial .html # howitworks

Mais cela ne fonctionne pas (analyse échoue) s'il y a deux points dans le nom de l'élément. Même si elle peut-être l'espace de noms, est un espace de noms unique dans le document XML.

<aws:elementname>...</aws:elementname>

Est-ce est un problème uniquement avec Xml de Google ou est-ce générique?

Était-ce utile?

La solution

Il suffit de ne pas envoyer l'argument comme vrai.

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");

Autres conseils

Il est certainement pas une question générale. Il y a certainement parseurs XML que namespaces poignée.

Je soupçonne que c'est une limitation du code tutoriel et que les bibliothèques de Google peuvent effectivement gérer les espaces de noms, mais il est un peu devinettes de regarder l'API docs.

Le code tutoriel utilise des appels comme

var movies = doc.html.head.getElements("movie");

qui semble être une version non-consciente espace de noms.

Il y a une surcharge de cette méthode qui prend une URL d'espace de noms aussi bien, et que vous pourriez avoir besoin d'utiliser s'il y a un espace de noms impliqués.

Si vous voulez utiliser un espace de noms, vous devez d'abord déclarer. Par exemple:.

<root xmlns:aws="some-uri">
  <aws:elementname />
</root>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top