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

如何从SQL Server 2008中的XML变量中删除属性?

相洛华
2023-03-14
问题内容

我有一个名为XML的表(在SQL Server2008中),并且有一个名为XmlDocumenttype的字段XML。我正在尝试从XML变量中删除属性。

这是我的xml的样子

<clue_personal_auto xmlns="http://cp.com/rules/client">
  <admin>
     <receipt_date>03/16/2011</receipt_date>
     <date_request_ordered>03/16/2011</date_request_ordered>
     <report_usage>Personal</report_usage>
  </admin>
</clue_personal_auto>

我的查询

UPDATE XML
SET XmlDocument.modify('delete  (/clue_personal_auto/@xmlns)[1]')
 WHERE xmlid = 357

当我在查询分析器中运行此查询时,我看到消息“受影响的1行”,但实际上并未删除clue_personal_auto元素的xmlns属性。不知道我在做什么错。

谢谢BB


问题答案:

我似乎找不到简单的方法来执行此操作-但真正的问题仍然存在: 为什么 要删除名称空间?使用该WITH XMLNAMESPACES ...构造,您可以轻松使用命名空间。

与其花费大量精力消除它,不如了解XML名称空间并开始使用它们!

您可以在查询中轻松使用该XML名称空间:

;WITH XMLNAMESPACES (DEFAULT 'http://cp.com/rules/client' )
SELECT
    XmlDocument.value('(/clue_personal_auto/admin/report_usage)[1]', 'varchar(25)')
FROM XML
WHERE ID = 357

并对此感到满意-不再需要人为地删除xmlns=声明!



 类似资料:
  • 我想从Google Analytics中删除一个测试属性,但是属性页上没有删除选项。有人知道如何从Google Analytics中删除一个属性吗?

  • 问题内容: 我有用于向会话添加变量的PHP代码: 当用户选择“删除”时,我想从会话数组中删除显示的变量。 但是,当我取消设置时,将删除数组中的所有变量。 如何仅删除一个变量? 问题答案: 由于是数组,因此需要找到指向您感兴趣的名称值的数组键。最后一行重新排列数组的索引,以供下次使用。

  • 如何从javascript变量中删除对象/数组?

  • 问题内容: 我需要有关从UTF-8文件删除BOM并创建其余xml文件的副本的方法的建议。 问题答案: 有因为在UTF-8文件中的BOM的工具断裂是一个 非常 以我的经验平常的事。我不知道为什么会有这么多的否决票(但是这给了我机会去尝试赢得足够的选票来赢得特殊的SO徽章;) 更严重的是:UTF-8 BOM通常没有太大意义, 但 在规格上完全有效(尽管不建议使用)。现在的问题是,很多人不知道BOM在U

  • 我尝试了下面的XSLT,但我不知道如何删除,xml version=“1.0”encoding=“UTF-8”?>。请帮忙

  • 所以我正在做的是,我正在从XML中查找并删除一些标签。删除后,这些标签会被空格替换,这实际上不会影响XML,但当我删除大量标签时会引起问题。 有什么可行的方法来实现这一点吗? 提前感谢。 这是我在这里找到的答案的链接,但它不起作用