用包含结肠 /名称空间的元素解析XML
-
28-09-2019 - |
题
使用XML在Google Apps脚本中解析XML文档:http://code.google.com/googleapps/appsscript/articles/xml_tutorial.html#howitworks
但是,如果元素名称中有结肠,则无效(解析失败)。即使它可能是名称空间,它在整个XML文档中都有一个单个名称空间。
<aws:elementname>...</aws:elementname>
这仅是Google XML的问题,还是通用?
解决方案
只是不要将论点作为真实。
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");
其他提示
这绝对不是一般问题。肯定有XML解析器处理名称空间。
我怀疑这是教程代码的限制,Google库实际上可以处理名称空间,但这是从查看API文档的某种猜测工作。
教程代码正在使用诸如
var movies = doc.html.head.getElements("movie");
这似乎是一个非Namespace-Aware版本。
此方法的过载也有一个命名空间URL,如果涉及命名空间,则可能需要使用。
如果要使用一些名称空间,则必须首先声明它。例如:
<root xmlns:aws="some-uri">
<aws:elementname />
</root>
不隶属于 StackOverflow