在MySQL ExtractValue函数的XPATH中使用XSLT fn:concat()函数时,将返回仅包含前两个参数的字符串。
例如:
SELECT ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", 'concat(/xml/a,/xml/b,/xml/c)')
这应该返回“123”,而是返回“12”。
这是一个错误还是我做错了什么?
<子>
我意识到可以使用以下解决方法:
concat(concat(/xml/a,/xml/b,/xml/c),/xml/c)
不过实话说?
子>
答案 0 :(得分:-1)
我猜你正在寻找这样的东西:
SELECT ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", '//a | //b | //c')
或(更有可能)这个:
SELECT
ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", '//a') AS a,
ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", '//b') AS b,
ExtractValue("<xml><a>1</a><b>2</b><c>3</c></xml>", '//c') AS c
请注意,您尝试过的xpath函数concat
将返回字符串的串联,如:
example: concat('foo', 'bar')
result : 'foo bar'