Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用VBA检查xml节点是否存在,如果不存在,如何将文本打印成组合字符串_Xml_Excel_Xpath_Vba - Fatal编程技术网

如何使用VBA检查xml节点是否存在,如果不存在,如何将文本打印成组合字符串

如何使用VBA检查xml节点是否存在,如果不存在,如何将文本打印成组合字符串,xml,excel,xpath,vba,Xml,Excel,Xpath,Vba,我正在修改一段VBA代码,该代码从GoogleGeolocationAPI请求XML数据。基于给定的信息(地址),Excel公式从API请求特定节点 例如: AdminAreaLvl3Node=Results。选择SingleNode(///result/address\u组件 [type='administration\u area\u level\u 3']/long\u name”) Google结果XML文件如下所示: 好啊 地点 政治的 04028意大利斯库里LT酒店 斯考里 斯考

我正在修改一段VBA代码,该代码从GoogleGeolocationAPI请求XML数据。基于给定的信息(地址),Excel公式从API请求特定节点

例如:

AdminAreaLvl3Node=Results。选择SingleNode(///result/address\u组件
[type='administration\u area\u level\u 3']/long\u name”)
Google结果XML文件如下所示:


好啊
地点
政治的
04028意大利斯库里LT酒店
斯考里
斯考里
地点
政治的
明图诺
明图诺
行政区第三级
政治的
拉丁省
书信电报
行政区二级
政治的
因此,Excel公式应生成包含数据的字符串

GetGeoData=LatitudeNode.Text&“,”和LongitudeNode.Text&“,”和
adminarelvl3node.Text&“,”和adminarelvl2node.Text&“,”和
AdminAreaLvl1Node.Text&“,”和CountryNode.Text
根据请求的位置,某些节点不包括在结果中。虽然可以提取“lat”和“lon”以及“国家”数据,但这会产生一个错误(公式单元格保持空白)

为了解决这个问题,我想实现以下“if-then”功能,不幸的是,单元格仍然为空:

设置AdminAreaLvl3Node=Results。选择SingleNode(“//result/address\u组件
[type='administration\u area\u level\u 3']/long\u name”)
如果不是AdminArealL3Node,则AdminArealL3Node=AdminArealL3Node.Text
Else adminarelvl3node=“nicht vorhanden”

如何获取包含所有可用定义节点的字符串?

当公式返回空值时,单元格为空。如果公式引发异常,则该单元格包含错误。您是否验证了当不是从工作表中调用时,函数返回的值是否正确?是的,当我不包括“管理区域”级别时,函数返回的值是否正确。当我只请求“Country”和“lat”以及“lon”时,没有错误。您是否验证了当不是从工作表调用时,您的函数返回正确的值?对不起,我对vba很陌生,如何测试它?通过创建调用它的
,并执行它?从即时窗口调用它?