Разбор XML с элементами, содержащими двоеточие / пространство имен - PullRequest
0 голосов
/ 27 ноября 2010

Использование Xml для анализа XML-документа в Google Apps Script: http://code.google.com/googleapps/appsscript/articles/XML_tutorial.html#HowItWorks

Но это не работает (синтаксический анализ не выполняется), если в имени элемента есть двоеточие.Несмотря на то, что это может быть пространство имен, это единое пространство имен в документе XML.

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

Это проблема только с Xml-кодом Google или она общая?

Ответы [ 3 ]

1 голос
/ 06 декабря 2010

Только не отправляйте аргумент как истину.

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");
0 голосов
/ 28 ноября 2010

Если вы хотите использовать некоторое пространство имен, вы должны сначала объявить его.Например:

<root xmlns:aws="some-uri">
  <aws:elementname />
</root>
0 голосов
/ 28 ноября 2010

Это определенно не общая проблема.Конечно, есть XML-анализаторы, которые обрабатывают пространства имен.

Я подозреваю, что это ограничение учебного кода и что библиотеки Google на самом деле могут обрабатывать пространства имен, но это несколько догадывается, глядя на документы API.

В учебном коде используются вызовы, такие как

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

, которая, по-видимому, не поддерживает пространства имен.

Существует перегрузка этого метода, который также принимает URL-адрес пространства имен,и которые вам, возможно, придется использовать, если задействовано пространство имен.

...