我正试图在google apps电子表格中使用importxml解析一个xml文件。
我的问题是我的xml文档设置如下:
staffList
staff
name
email
staff
name
staff
name
email
我尝试选择所有的email元素(我尝试了//staff/email,但是如果节点不存在,它不会插入null),如果email的节点不存在,则写入null(如上面的示例)。
我尝试了下面的xpath查询,但它只选择了第一个email元素,并写入1行,而不是写入n行,其中n是“staff”节点的数量。
=importxml(“http://www.engr.udel.edu/mf/test_staff.xml”;“concat(/stafflist/staff/email,substring('not-found',1 div not(/stafflist/staff/email[node()])))”
有人有什么想法吗?提前谢谢!
最佳答案
用途:
//staff/email | //staff[not(email)]
这将选择父元素为
email
元素的所有现有staff
元素…加上任何没有staff
子元素的email
元素。不完全是“返回null”(因为xpath中没有“null”这样的东西),但是您的代码只需要检查
staff
元素而不是“null”。关于xml - 除了第一个元素,还使用Becker的XPath方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16269464/