当前位置: 首页 > 面试题库 >

XML query()有效,value()要求找到单例xdt:untypedAtomic

符渊
2023-03-14
问题内容

我有一个存储为文本的类型化xml文档。因此,为了能够使用XML方法,我通过使用通用表表达式将数据类型转换为xml:

WITH xoutput AS (
  SELECT CONVERT(xml, t.requestpayload) 'requestpayload'
    FROM TABLE t
   WHERE t.methodid = 1)
SELECT x.requestpayload.query('declare namespace s="http://blah.ca/api";/s:validate-student-request/s:student-id') as studentid
  FROM xoutput x

查询有效,将元素返回给我。但是我只对值感兴趣:

WITH xoutput AS (
  SELECT CONVERT(xml, t.requestpayload) 'requestpayload'
    FROM TABLE t
   WHERE t.methodid = 1)
SELECT x.requestpayload.value('declare namespace s="http://blah.ca/api";/s:validate-student-request/s:student-id', 'int') as studentid
  FROM xoutput x

这给了我以下错误:

‘value()’需要一个单例(或空序列),找到类型为’xdt:untypedAtomic *’的操作数

我用谷歌搜索的内容说XPATH / XQUERY需要放在括号内和/或需要“ [1]”-都没有用。xml中只有一个Student-
id元素,尽管我猜想该架构还允许更多?

另外,我想检索许多元素值-是否有一种方法可以一次声明名称空间,而不是每个方法调用一次?


问题答案:

您需要使用此:

SELECT 
        x.requestpayload.value('declare namespace s="http://blah.ca/api";
            **(** /s:validate-student-request/s:student-id **)[1]** ', 'int') 
    AS
        studentid
    FROM 
        xoutput x

您需要放入XPath( ... )添加[1]以简单地选择该序列的第一个值。



 类似资料:
  • > 启动ApplicationContext时出错。若要显示自动配置报告,请在启用“debug”的情况下重新运行应用程序 设置构造函数参数时无法解析对bean“Entity ManagerFactory”的引用 找不到名为“Entity ManagerFactory”的bean Field repository需要一个名为“Entity ManagerFactory”的bean,但找不到该bean

  • 问题内容: 我正在使用以下文件在Ubuntu 12.04中安装几个Python软件包: 和这两个命令: (第一个下载软件包,第二个安装软件包)。 该过程经常因错误而停止: 我用以下方法手动修复: 然后再次运行第二个命令。 但这仅适用于 该 特定程序包。当我再次运行第二个命令时,该过程现在停止,并抱怨 另一个 必需的程序包,我需要再次重复该过程,即:手动安装新的必需的程序包(使用上面的命令),然后运

  • 找不到满足Flask pip安装-U Flask要求的版本 收集烧瓶无法获取URLhttps://pypi.python.org/simple/flask/:确认ssl证书时出现问题:[ssl:TLSV1\u警报\u协议\u版本]TLSV1警报协议版本(\u ssl.c:590)-正在跳过 找不到满足要求的版本(来自版本:) 未找到烧瓶的匹配分布

  • 问题内容: 我有一个可以从https服务器下载文件的类。当我运行它时,它返回很多错误。我的证书似乎有问题。是否可以忽略客户端服务器认证?如果是这样,怎么办? 错误: 问题答案: 当你的服务器具有自签名证书时,会出现此问题。要解决此问题,你可以将此证书添加到JVM的受信任证书列表中。 在本文中,作者描述了如何从浏览器中获取证书并将其添加到JVM的cacerts文件中。你可以使用-参数编辑文件或运行应

  • 我正在使用restTemplate发出post请求,并收到以下错误:无法找到到请求目标的有效证书路径 我的方法如下:

  • 我在Apache Tomcat7上有一个web应用程序,我的web应用程序上有不可信的证书。我的web应用程序必须与另一个使用HTTPS的web应用程序通信。然而,我总是遇到这样一个例外: 连接失败:javax.net.ssl.sslhandShakeException:sun.security.validator.validatoreXception:PKIX路径构建失败:sun.securit