Google 工作表 =importXML() returns "Imported Content is Empty"

Google Sheets =importXML() returns "Imported Content is Empty"

我正在尝试使用 Google 表格为图书列表导入最常见的国会图书馆标识符。 ISBN 的 XML 文件是 http://classify.oclc.org/classify2/Classify?isbn=1433528525&summary=true。 XML 为了方便起见,粘贴在下面。我想得到 lcc/mostPopular[@nsfa] 但是公式 =importxml("http://classify.oclc.org/classify2/Classify?isbn=1433528525&summary=true","lcc/mostPopular[@nsfa]") returns “导入的内容是空的。”

我输入的xpath_query错了吗?

我知道 link 是有效的,因为我可以使用 =importdata("http://classify.oclc.org/classify2/Classify?isbn=1433528525&summary=true") 导入整个内容,但这会在电子表格中产生乱码数据。

<classify xmlns="http://classify.oclc.org">
<response code="0"/>
<!-- Classify is a product of OCLC Online Computer Library Center: http://classify.oclc.org -->
<work author="Piper, John, 1946-" editions="4" eholdings="97" format="Book" holdings="184" itemtype="itemtype-book" owi="769061307" title="Bloodlines : race, cross, and the Christian">696100305</work>
<authors>
<author lc="n78072014" viaf="109537817">Piper, John, 1946-</author>
</authors>
<orderBy>thold desc</orderBy>
<input type="isbn">1433528525</input>
<recommendations>
<ddc>
<mostPopular holdings="280" nsfa="270.089" sfa="270.089"/>
<mostRecent holdings="280" sfa="270.089"/>
<latestEdition holdings="280" sf2="22" sfa="270.089"/>
</ddc>
<lcc>
<mostPopular holdings="280" nsfa="BT738.27" sfa="BT738.27"/>
<mostRecent holdings="280" sfa="BT738.27"/>
</lcc>
</recommendations>
</classify>

尝试:

=REGEXEXTRACT(QUERY(FLATTEN(SPLIT(QUERY(IMPORTDATA(
 "http://classify.oclc.org/classify2/Classify?isbn=1433528525&summary=true"),,9^9), 
 "<lcc>", 0)), 
 "where Col1 contains 'mostPopular' offset 1"), 
 "nsfa=""([^\s]+)""")

我觉得在你=importxml("http://classify.oclc.org/classify2/Classify?isbn=1433528525&summary=true","lcc/mostPopular[@nsfa]")的公式中,需要修改xpath。在这个答案中,我想建议修改 xpath 以实现您的目标。那么,下面的修改呢?

修改后的公式:

=IMPORTXML(A1,"//*[local-name()='lcc']//@nsfa")
  • 在这个公式中,请将http://classify.oclc.org/classify2/Classify?isbn=1433528525&summary=true的URL填入“A1”单元格。
  • 在这种情况下,属性 nsfa 在标签 lcc 下仅存在一个。所以我认为您可以使用 //*[local-name()='lcc']//@nsfa 作为 xpath。
  • 如果要使用lcc/mostPopular[@nsfa],也可以使用//*[local-name()='lcc']/*[local-name()='mostPopular']/@nsfa的xpath。

结果:

参考文献: