我想从给出xml中提取位置ID,并且还想放置在条件存在的情况下提取它的条件.
<?xml version="1.0" encoding="UTF-8"?>
<id>1006221342207</id>
<name>Hitesh Modha</name>
<email>hitesh.99@hotmail.com</email>
<location>
<id>115440481803904</id>
<name>Ahmedabad, India</name>
</location>
Run Code Online (Sandbox Code Playgroud)
我试过了 :
SET location = ExtractValue(xml, '//locations//id');
SELECT ExtractValue(location, '//id');
Run Code Online (Sandbox Code Playgroud)
但它不起作用.请帮忙
SQL
SELECT
ExtractValue('<?xml version="1.0" encoding="UTF-8"?>
<id>1006221342207</id>
<name>Hitesh Modha</name>
<email>hitesh.99@hotmail.com</email>
<location>
<id>115440481803904</id>
<name>Ahmedabad, India</name>
</location>', '//location//id');
Run Code Online (Sandbox Code Playgroud)
仅返回空结果,因为//locations//id您使用的XML片段的路径为空.
您更有可能寻找'/location/id'xpath表达式,因为它将返回id text()值:115440481803904
你做的下一个错误就是你认为ExtractValue会返回一个你可以重新运行的XML片段ExtractValue.事实并非如此(仅当 - 在您的示例中不是这种情况 - 在定位text()节点中将XML编码为CDATA ).
这里详细解释了所有细节:
如果你无法解决这些误解,我没有进一步的建议可以给你.