首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SQL编辑xml

使用SQL编辑xml
EN

Stack Overflow用户
提问于 2011-09-29 08:48:28
回答 1查看 250关注 0票数 1

我是SQL Server中的xml数据类型新手。我有一个包含一些xml的字段,我想要编辑它。本质上,如果某些节点具有特定的数据类型或值,我希望删除这些节点。有许多子类型节点,每个子类型可以有多个SubtypeFieldInfo。

在SubtypeFieldInfo节点包含节点的情况下:

代码语言:javascript
复制
<DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>

我想删除该节点

下面是完整的xml。任何帮助都非常感谢

代码语言:javascript
复制
    <DEFeatureClassInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:typens="http://www.esri.com/schemas/ArcGIS/10.0" xsi:type="typens:DEFeatureClassInfo">
  <Subtypes xsi:type="typens:ArrayOfSubtype">
    <Subtype xsi:type="typens:Subtype">
      <SubtypeName>1</SubtypeName>
      <SubtypeCode>1</SubtypeCode>
      <FieldInfos xsi:type="typens:ArrayOfSubtypeFieldInfo">
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>Status</FieldName>
          <DomainName>pwStatus</DomainName>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>OwnedBy</FieldName>
          <DomainName>shdMaintainedBy</DomainName>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>MaintainedBy</FieldName>
          <DomainName>shdMaintainedBy</DomainName>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>InputCode</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:int">12</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>UnitType</FieldName>
          <DomainName>trafStripingType</DomainName>
          <DefaultValue xsi:type="xs:string">SY</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>CalTDescription</FieldName>
          <DomainName>trafStripingDescr</DomainName>
          <DefaultValue xsi:type="xs:string">CL</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>DetailNumber</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:string">1</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>StripingDetail</FieldName>
          <DomainName>trafStripingDetail</DomainName>
          <DefaultValue xsi:type="xs:string">2WYCENTERLINE</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>Color</FieldName>
          <DomainName>trafStripingColor</DomainName>
          <DefaultValue xsi:type="xs:string">Yellow</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>LinePattern</FieldName>
          <DomainName>trafStripeLineType</DomainName>
          <DefaultValue xsi:type="xs:string">Skip</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>Material</FieldName>
          <DomainName>trafStripingMaterial</DomainName>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>TravelDirection</FieldName>
          <DomainName>trafTravelDirection</DomainName>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>IsSchoolZone</FieldName>
          <DomainName>shdBooleanYesNo</DomainName>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>EstInstallDate</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>RefreshDate</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>WOUpdateDate</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>Quadrant</FieldName>
          <DomainName>shdQuadrantZone</DomainName>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>DwgAsbuiltDate</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>DwgSignDate</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>AcceptanceDate</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>IsSyncHansen</FieldName>
          <DomainName>shdBooleanYesNo</DomainName>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>ImageDate</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>ModifiedDate</FieldName>
          <DomainName />
          <DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>CreateDate</FieldName>
          <DomainName />
          <DefaultValue xsi:nil="true" />
        </SubtypeFieldInfo>
        <SubtypeFieldInfo xsi:type="typens:SubtypeFieldInfo">
          <FieldName>DwgSheet</FieldName>
          <DomainName />
          <DefaultValue xsi:nil="true" />
        </SubtypeFieldInfo>
      </FieldInfos>
    </Subtype>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-29 12:16:35

不确定要删除哪个节点,因此这里有两个选项。

删除DefaultValue节点:

代码语言:javascript
复制
update YourTable
set XMLCol.modify('delete (//SubtypeFieldInfo/DefaultValue)
                   [@xsi:type="xs:dateTime" and 
                    text() = "2222-02-22T00:00:00"]')

删除SubtypeFieldInfo节点:

代码语言:javascript
复制
update YourTable
set XMLCol.modify('delete (//SubtypeFieldInfo)
                   [DefaultValue/@xsi:type="xs:dateTime" and 
                    DefaultValue/text() = "2222-02-22T00:00:00"]')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7591253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档