<legend id='2mZh7'><style id='2mZh7'><dir id='2mZh7'><q id='2mZh7'></q></dir></style></legend>
  1. <small id='2mZh7'></small><noframes id='2mZh7'>

    <tfoot id='2mZh7'></tfoot>

    <i id='2mZh7'><tr id='2mZh7'><dt id='2mZh7'><q id='2mZh7'><span id='2mZh7'><b id='2mZh7'><form id='2mZh7'><ins id='2mZh7'></ins><ul id='2mZh7'></ul><sub id='2mZh7'></sub></form><legend id='2mZh7'></legend><bdo id='2mZh7'><pre id='2mZh7'><center id='2mZh7'></center></pre></bdo></b><th id='2mZh7'></th></span></q></dt></tr></i><div id='2mZh7'><tfoot id='2mZh7'></tfoot><dl id='2mZh7'><fieldset id='2mZh7'></fieldset></dl></div>
    • <bdo id='2mZh7'></bdo><ul id='2mZh7'></ul>

      带有未声明前缀的 SQL Server Xml 查询

      时间:2023-06-07
      <tfoot id='2TsEx'></tfoot>
    1. <legend id='2TsEx'><style id='2TsEx'><dir id='2TsEx'><q id='2TsEx'></q></dir></style></legend>

          • <i id='2TsEx'><tr id='2TsEx'><dt id='2TsEx'><q id='2TsEx'><span id='2TsEx'><b id='2TsEx'><form id='2TsEx'><ins id='2TsEx'></ins><ul id='2TsEx'></ul><sub id='2TsEx'></sub></form><legend id='2TsEx'></legend><bdo id='2TsEx'><pre id='2TsEx'><center id='2TsEx'></center></pre></bdo></b><th id='2TsEx'></th></span></q></dt></tr></i><div id='2TsEx'><tfoot id='2TsEx'></tfoot><dl id='2TsEx'><fieldset id='2TsEx'></fieldset></dl></div>

                <tbody id='2TsEx'></tbody>

              <small id='2TsEx'></small><noframes id='2TsEx'>

                <bdo id='2TsEx'></bdo><ul id='2TsEx'></ul>

              • 本文介绍了带有未声明前缀的 SQL Server Xml 查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                问题描述

                限时送ChatGPT账号..

                我在 SQL Server 2008 中有一个变量,其中包含 XML 列的一部分,但我无法查询它.XML 可以包含或不包含前缀ns0".我想从 xml 中检索 [from].我试过的查询是这样的:

                I have a variable in SQL Server 2008 that contains a part of a XML column and I am having trouble querying it. The XML can contain a prefix "ns0" or not. I want to retrieve [from] from the xml. The query I tried was this:

                DECLARE @Params XML
                SET @Params = '<filter>
                                      <ns0:from>2016-09-19</ns0:from>
                                      <ns0:to>2017-01-01<ns0:to>
                               </filter>';
                SELECT @Params.value('(/*:filter/*:from)[1]', 'Varchar(max)') AS [from]
                

                我没有用于声明任何命名空间的 XML 标头.当我尝试执行此操作时,出现此错误:

                I don't have a XML header to declare any namespace. When I try to execute this, I got this error:

                 XML parsing: line 1, character 10, undeclared prefix
                

                但是当我尝试这个时,一切正常:

                But when I try this, everything works fine:

                SET @Params = '<filter>
                                    <from>2016-09-19<from>
                                    <to>2017-01-01<to>
                               </filter>
                SELECT @Params.value('(/*:filter/*:from)[1]', 'Varchar(max)') AS [from]
                

                如何使用 XPath 查询检索 [from] 给定上述带有前缀或不带前缀的 xml 示例?

                How can I retrieve [from] using an XPath query given the above xml example with a prefix or without prefix?

                推荐答案

                你的例子在两个方面是无效的:

                Your example is invalid in two ways:

                1. 如果没有相应的命名空间声明,则不允许有命名空间前缀.
                2. 您的结束标签没有在任何地方都包含/...
                1. It is not allowed to have a namespace prefix without a corresponding namespace declaration.
                2. Your closing tags do not include the / everywhere...

                这是一个丑陋的黑客,但你可以试试这个:

                This is an ugly hack, but you might try this:

                DECLARE @Params XML
                SET @Params = REPLACE('<filter>
                                      <ns0:from>2016-09-19</ns0:from>
                                      <ns0:to>2017-01-01</ns0:to>
                               </filter>','ns0:','');
                SELECT @Params.value('(/*:filter/*:from)[1]', 'date') AS [from];
                

                如果您事先不知道所有命名空间前缀,这将变得非常棘手...

                If you do not know all namespace prefixes in advance this will get really tricky...

                这篇关于带有未声明前缀的 SQL Server Xml 查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                上一篇:CROSS APPLY 到命名空间,子节点返回重复记录 下一篇:在sql server中解析xml

                相关文章

                最新文章

              • <i id='WDonS'><tr id='WDonS'><dt id='WDonS'><q id='WDonS'><span id='WDonS'><b id='WDonS'><form id='WDonS'><ins id='WDonS'></ins><ul id='WDonS'></ul><sub id='WDonS'></sub></form><legend id='WDonS'></legend><bdo id='WDonS'><pre id='WDonS'><center id='WDonS'></center></pre></bdo></b><th id='WDonS'></th></span></q></dt></tr></i><div id='WDonS'><tfoot id='WDonS'></tfoot><dl id='WDonS'><fieldset id='WDonS'></fieldset></dl></div>
                <legend id='WDonS'><style id='WDonS'><dir id='WDonS'><q id='WDonS'></q></dir></style></legend>

                  <tfoot id='WDonS'></tfoot>

                  <small id='WDonS'></small><noframes id='WDonS'>

                  • <bdo id='WDonS'></bdo><ul id='WDonS'></ul>