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。
结果:
参考文献:
我正在尝试使用 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。