我是SQL Server中的xml数据类型新手。我有一个包含一些xml的字段,我想要编辑它。本质上,如果某些节点具有特定的数据类型或值,我希望删除这些节点。有许多子类型节点,每个子类型可以有多个SubtypeFieldInfo。
在SubtypeFieldInfo节点包含节点的情况下:
<DefaultValue xsi:type="xs:dateTime">2222-02-22T00:00:00</DefaultValue>我想删除该节点
下面是完整的xml。任何帮助都非常感谢
<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>发布于 2011-09-29 12:16:35
不确定要删除哪个节点,因此这里有两个选项。
删除DefaultValue节点:
update YourTable
set XMLCol.modify('delete (//SubtypeFieldInfo/DefaultValue)
[@xsi:type="xs:dateTime" and
text() = "2222-02-22T00:00:00"]')删除SubtypeFieldInfo节点:
update YourTable
set XMLCol.modify('delete (//SubtypeFieldInfo)
[DefaultValue/@xsi:type="xs:dateTime" and
DefaultValue/text() = "2222-02-22T00:00:00"]')https://stackoverflow.com/questions/7591253
复制相似问题