在带有转义 xml 的 xm 文档上使用 SQL 服务器 xml.modify
Using SQL Server xml.modify on an xm document with escaped xml
我想使用 SQL 服务器的 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"')
但尝试仅对 returns 未修改的 XML 文档对 BikeHorn 执行相同的操作。是否可以修改转义XML包围的元素的值?任何帮助将不胜感激,谢谢。另外,请注意,在我的实际代码中,功能下的所有元素都将被转义 XML.
包围
问题是您没有名为 <BikeHorn>
的节点,您有一个复杂的节点 <Features>
,除了 <BikeLight>
子节点外,它还包含一些自己的文本.所以需要修改<Features>
来改变BikeHorn
的值:
set @myDoc.modify('
replace value of (/Root/ProductDescription/Features/text())[1]
with "<BikeHorn>False</BikeHorn>"')
我想使用 SQL 服务器的 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"')
但尝试仅对 returns 未修改的 XML 文档对 BikeHorn 执行相同的操作。是否可以修改转义XML包围的元素的值?任何帮助将不胜感激,谢谢。另外,请注意,在我的实际代码中,功能下的所有元素都将被转义 XML.
包围问题是您没有名为 <BikeHorn>
的节点,您有一个复杂的节点 <Features>
,除了 <BikeLight>
子节点外,它还包含一些自己的文本.所以需要修改<Features>
来改变BikeHorn
的值:
set @myDoc.modify('
replace value of (/Root/ProductDescription/Features/text())[1]
with "<BikeHorn>False</BikeHorn>"')