如何使用 Google 应用程序脚本在已解析的 XML 中搜索元素?
How can I search for elements in a parsed XML with Google App Script?
我有以下问题:
- 有一个GoogleSheet包含XML个元素(例如:product)
- 我想为 Google Sheet 编写一个 Google 应用程序脚本:
- 解析 XML 文档 在 Google 驱动器上
- 找出 sheet 中的元素是否出现在 XML
中以及出现的频率
- 将结果写在sheet中(对我来说应该没问题)
我已经可以从 xml:
中获取内容
function ReadXml(){
var data = UrlFetchApp.fetch("https://drive.google.com/uc?id=1SNOIXgBpK20jSQ4nl5w2ZPoY9HHnRmAz&export=download").getContentText();
var xml = XmlService.parse(data);
var root = xml.getRootElement();
Logger.log(data);
...
现在我一直在搜索元素或从已解析的文档中获取任何信息。
我已经通过文档尝试了许多不同的方法来解决这个问题。目前我试试这个:
...
var children = root.getChildren("product");
var product = children[0].getName();
Logger.log(product);
}
我知道 xml 中有一个“产品”元素,但似乎找不到任何元素。
我不知道我是否必须使用 XSM 或其他问题。
我明白了。如果不使用正确的命名空间作为参数,Google 应用程序脚本 XML 服务将无法工作。
对于我的xml,我得到了这样的命名空间:
var namespace = XmlService.getNamespace('http://www.editeur.org/onix/2.1/short');
第一次使用 xml 解析,所以我不知道。您将在 xml.
的第一行找到命名空间 Link
之后就可以得到xml上的元素信息了:
var elementContent = root.getChild("product", namespace).getChild("a001", namespace).getText();
我有以下问题:
- 有一个GoogleSheet包含XML个元素(例如:product)
- 我想为 Google Sheet 编写一个 Google 应用程序脚本:
- 解析 XML 文档 在 Google 驱动器上
- 找出 sheet 中的元素是否出现在 XML 中以及出现的频率
- 将结果写在sheet中(对我来说应该没问题)
我已经可以从 xml:
中获取内容function ReadXml(){
var data = UrlFetchApp.fetch("https://drive.google.com/uc?id=1SNOIXgBpK20jSQ4nl5w2ZPoY9HHnRmAz&export=download").getContentText();
var xml = XmlService.parse(data);
var root = xml.getRootElement();
Logger.log(data);
...
现在我一直在搜索元素或从已解析的文档中获取任何信息。
我已经通过文档尝试了许多不同的方法来解决这个问题。目前我试试这个:
...
var children = root.getChildren("product");
var product = children[0].getName();
Logger.log(product);
}
我知道 xml 中有一个“产品”元素,但似乎找不到任何元素。
我不知道我是否必须使用 XSM 或其他问题。
我明白了。如果不使用正确的命名空间作为参数,Google 应用程序脚本 XML 服务将无法工作。
对于我的xml,我得到了这样的命名空间:
var namespace = XmlService.getNamespace('http://www.editeur.org/onix/2.1/short');
第一次使用 xml 解析,所以我不知道。您将在 xml.
的第一行找到命名空间 Link之后就可以得到xml上的元素信息了:
var elementContent = root.getChild("product", namespace).getChild("a001", namespace).getText();