3

我正在尝试使用 importXML 在 Google 应用电子表格上解析 XML 文件。

我的问题是我的 XML 文档是这样设置的:

staffList
    staff
        name
        email
    staff
        name
    staff
        name
        email

并且我正在尝试选择所有电子邮件元素(我尝试过 //staff/email,但如果节点不存在,它不会插入 null),如果电子邮件节点不存在则写入 NULL(如上面的例子)。

我尝试了下面的 XPath 查询,但它只是选择第一个电子邮件元素,并写入 1 行,而不是写入 n 行,其中 n 是“员工”节点的数量。

=ImportXML(" http://www.engr.udel.edu/mf/test_staff.xml ";"concat(/staffList/staff/email, substring('not-found', 1 div not(/staffList/staff/电子邮件[节点()])))“)

有人有什么想法吗?提前致谢!

4

1 回答 1

3

使用

//staff/email | //staff[not(email)]

email这将选择其父元素是元素的所有现有元素staff......加上任何staff没有email子元素的元素。

不完全是“返回 null”(因为在 XPath 中没有“null”之类的东西),但您的代码只需要检查一个staff元素而不是“null”。

于 2013-04-29T03:52:31.317 回答