Google Sheets使用ImportXML解析MarcXML遇空内容错误求助
解决Google Sheets IMPORTXML解析MarcXML返回空内容的问题
问题原因
你遇到的问题是因为目标MarcXML使用了命名空间(示例XML的根元素带有xmlns="http://www.loc.gov/MARC21/slim"属性),而原XPath表达式未考虑命名空间,导致IMPORTXML无法匹配到datafield和subfield元素。=IMPORTXML(A1;"/*")能返回内容是因为它匹配根元素,不受命名空间影响。
解决方法
使用XPath的local-name()函数忽略命名空间,直接匹配元素的本地名称,修改后的公式如下:
=IMPORTXML(A1, "//*[local-name()='datafield' and @tag='245']/*[local-name()='subfield' and @code='a']")
原理说明
local-name()函数返回元素的纯名称(不带命名空间前缀),即使元素属于特定命名空间,XPath也能正确匹配目标节点。这是Google Sheets中处理带命名空间XML的可靠方案之一。
内容的提问来源于stack exchange,提问作者W.J.F.
相关产品推荐
相关产品推荐

