在 Google 表格中,我正在开发一种工具,用于将某些美国国会选区的信息与其各自的国会议员相关联。为了便于更新有关哪些代表服务于哪些区的信息,我选择使用一项IMPORTXML
功能来检索会员和区的最新列表。
幸运的是,美国众议院文员发布了一个最新的 xml 文件,其中包含我需要的所有信息。虽然我仍在尝试掌握 Sheets 中的 xpath 查询,但我认为我已经掌握了如何将它应用于这个项目的基本方法。我发现我可以使用以下函数来检索州和国会区信息:
=IMPORTXML("http://clerk.house.gov/xml/lists/MemberData.xml","//member/statedistrict")
这是函数返回的数据:
显然,所有 435 个区的结果都在继续(实际上是 441 个,因为它也包括无投票权的代表),我可以处理这个问题。我遇到的问题是当我尝试使用以下功能导入众议院成员的姓名时:
=IMPORTXML("http://clerk.house.gov/xml/lists/MemberData.xml","//member/member-info/namelist")
这就是该函数返回的内容:
再一次,结果继续并包括每个成员。但是,由于一些空缺,目前众议院没有 435 名议员(包括代表在内 441 名)。检索成员名称的IMPORTXML
函数只返回它可以找到的 438 个名称。
这意味着我不能通过简单地IMPORTXML
在两个相邻列中使用两个调用(一个与州/地区,另一个与名称)轻松地将成员关联到一个地区,因为列表没有排列,可以在底部看到的列:
我做了一些挖掘,并了解到我可以通过在查询之间IMPORTXML
添加来在一次调用中使用两个 xpath|
查询。使用来自先前函数的 xpath 查询执行此操作,IMPORTXML
调用如下所示:
=IMPORTXML("http://clerk.house.gov/xml/lists/MemberData.xml","//member/statedistrict | //member/member-info/namelist")
它返回一个单列,其中州/地区与这样的名称交错:
有趣的是,当我这样做时,这些名称与他们的地区适当地配对;当有空位时,函数导入区,跳过不存在的名称,导入下一个区,然后输入下一个名称。因此,当涉及到空置区域时,输出如下所示(空置区域突出显示):
但是,为了使这个有用,我真的需要将这些数据分成两列,一列包含州/地区数据,另一列包含该地区各自成员的姓名。我正在尝试尽可能多地了解这个问题,但这远远超出了我过去尝试过的任何事情的范围,而且远远超出了我的舒适区。到目前为止,这就是我的立场,在这一点上的任何帮助将不胜感激。