我有一个 xml 字符串,需要在 sql 中对其进行操作。
<RuleData ReturnVariable="">
<MateProperties>
<Property Key="value" DisplayName="name value" />
<Property Key="value2" DisplayName="name value2" />
</MateProperties>
<ReferenceNames>
<Item Name="0" Value="=CouplerType + "-1"" />
<Item Name="1" Value="Driveshaft-1" />
</ReferenceNames>
<ReferenceFeatures>
*<Item Name="=CouplerType + "-1"" Value="CSYS_BOREB" />
<Item Name="Driveshaft-1" Value="CSYS_CouplerINSIDE" />*
</ReferenceFeatures>
</RuleData>
这两行我需要转换它们。
<Item Name="=CouplerType + "-1"" Value="CSYS_BOREB" />
<Item Name="Driveshaft-1" Value="CSYS_CouplerINSIDE" />
到这种新格式。
<Value>
<Column Value="=CouplerType + "" />
<Column Value="CSYS_BOREB" />
</Value>
<Value>
<Column Value="Driveshaft-1" />
<Column Value="CSYS_CouplerINSIDE" />
</Value>
基本上每行都必须分成两部分并重新命名。我可以处理重命名我只是在拆分列时遇到了麻烦。我也必须在 ReferenceNames 部分做同样的事情。那个更容易,因为它总是“0”和“1”,所以我可以简单地将xml转换为字符串并找到替换它。不过,ReferenceFeatures 部分更复杂,因为名称部分中可以包含任何内容。