我希望使用Server的XML.modify对XML文档进行修改。我的问题是,我的XML文档使用了一些转义的XML,因此"<“显示为"<”,">“则显示为">”。我想知道是否可以设置被转义XML包围的元素的值。下面是我正在处理的一个例子:
Declare @myDoc as xml;
Set @myDoc = '<Root>
<ProductDescription ProductID="1" ProductName="Road Bike">
<Features>
<BikeLight>False</BikeLight>
<BikeHorn>True</BikeHorn>
</Features>
</ProductDescription>
</Root>' ;我知道可以通过以下方法编辑BikeLight元素的值
set @myDoc.modify('replace value of (/Root/ProductDescription/Features/BikeLight/text())[1] with "True"')但是,试图对BikeHorn执行同样的操作只返回未经修改的XML文档。是否可以修改被转义XML包围的元素的值?任何帮助都将不胜感激,谢谢。另外,请注意,在我的实际代码中,特性下的所有元素都将被转义的XML包围。
发布于 2015-02-10 19:20:44
问题是,您没有一个名为<BikeHorn>的节点,您有一个复杂的节点<Features>,它除了一个<BikeLight>子节点之外,还包含一些自己的文本。因此,您需要修改<Features>以更改BikeHorn的值。
set @myDoc.modify('
replace value of (/Root/ProductDescription/Features/text())[1]
with "<BikeHorn>False</BikeHorn>"')https://stackoverflow.com/questions/28438837
复制相似问题