当前位置: 首页 > 知识库问答 >
问题:

SQL服务器用NameSpace提取Xml标签内文本

宗政权
2023-03-14

我在一个列的表中有以下xml值。我需要使用SQL查询提取errorCode值。

我尝试了以下查询,但它显示了一个错误:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <queryCalendarResponse xmlns="http://www.foobar.com/WS">
            <queryCalendarReturn>
                <errorCode>100</errorCode>
                <errorMessage>Success</errorMessage>
            </queryCalendarReturn>
        </queryCalendarResponse>
    </soapenv:Body>
</soapenv:Envelope>
SELECT
    CAST(REPLACE(Response, 'utf-8', 'utf-16') AS XML).value('
 (/soap:Envelope/soap:Body/queryCalendarResponse/queryCalendarReturn/errorCode)[1]', 'nvarchar(max)'), * 
FROM
    LogTable 
WHERE
    ID = 100

我发现这个错误:

XQuery[value()]:名称“肥皂”不表示命名空间

共有1个答案

拓拔烨赫
2023-03-14

我找到了解决方案。我必须将xml命名空间声明添加到我的sql中。所以我的最终sql是这样的,它返回值:


select CAST(REPLACE(Response,'utf-8','utf-16') AS XML).value('
        declare namespace ns1="http://schemas.xmlsoap.org/soap/envelope/";
        declare namespace ns2="http://www.foobar.com/WS";
        (/ns1:Envelope/ns1:Body/ns2:queryCalendarResponse/ns2:queryCalendarReturn/ns2:errorCode)[1]',
        'nvarchar(max)'), * from LogTable where ID = 100

 类似资料:
  • 下面尝试过,但是直到并且除非我使Acyah geShipmentIn绑定节点为空(删除释放ID="9.2"xmlns="http://schema.infor.com/InforOAGIS/2"xmlns: xs="http://www.w3.org/2001/XMLSchema")选择查询不获取值。

  • 主要内容:在服务器上存储 XML 文件,通过 ASP 生成 XML,通过 PHP 生成 XML,从数据库生成 XML,在服务器上通过 XSLT 转换 XML,通过 ASP 把 XML 保存为文件XML 文件是类似 HTML 文件的纯文本文件。 XML 能够通过标准的 Web 服务器轻松地存储和生成。 在服务器上存储 XML 文件 XML 文件在 Internet 服务器上进行存储的方式与 HTML 文件完全相同。 启动 Windows 记事本,并写入以下行: <?xml version="1.0

  • 我有一个包含数万个XML文件(小文件)的语料库,我正在尝试使用Python并提取其中一个XML标记中包含的文本,例如,body标记之间的所有内容,例如: 然后编写一个包含此字符串的文本文档,然后向下移动XML文件列表。 我正在使用effbot的ELementTree,但找不到正确的命令/语法来做到这一点。我找到了一个使用迷你DOM的dom.getElementsByTagName的网站,但我不确定

  • 问题内容: 我想从放置在和标记中的HTML页面提取文本,因此我可以开始对该页面进行标记化,以便为每个页面构造倒排索引,以便回答搜索查询。 我如何使用jsoup 获取标签 要在该参数中写入的字符串是什么? 问题答案: 这可以做的工作 这是您可以使用的所有选择器的列表。 假设您有这个html: 要获得结果,您应该使用: 要么 假设现在您具有以下复杂的html 要从两个标签中获取值,您必须执行以下操作

  • 问题内容: 我有这个示例xml文件 我喜欢提取标题标签和内容标签的内容。 使用模式匹配或使用xml模块,哪种方法最适合提取数据。还是有更好的方法来提取数据。 问题答案: 特别是已经有一个内置的XML库。例如:

  • 以下是从XML文档中提取内容和元数据的程序 - import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.tika.exception.TikaException; import org.apache.tika.metadata.Metadata; impor