[英]how to update or query xml with xmlns attributes
说我的xml文档是这个
<root xmlns="http://www.w3.org/2001/XMLSchema-instance">
<parent prop="1">
<child>
<field name="1">
<value1>abc</value1>
<value2>cdf</value2>
</field>
<field name="2">
<value1>efg</value1>
<value2>hjk</value2>
</field>
</child>
</parent>
<parent2>
<prop atrb="2">abc</prop>
</parent2>
</root>
我有一个表newTable2和xml datatyped列作为xmlcol1
这是我担心的查询
SELECT xmlcol1.query('/root/parent/child/field/value1/text()') AS a
FROM newTable2
当我删除xmlns属性时,如果我放回去,它会起作用,任何人都可以解释为什么会这样,以及如何查询保持xmlns属性的相同属性。
尝试这个:
;with xmlnamespaces (
default 'http://www.w3.org/2001/XMLSchema-instance'
)
SELECT xmlcol1.query('/root/parent/child/field/value1/text()') AS a_query
, xmlcol1.value('(/root/parent/child/field/value1/text())[1]', 'varchar(255)') AS a_value_1
, xmlcol1.value('(/root/parent/child/field/value1/text())[2]', 'varchar(255)') AS a_value_2
FROM newTable2
没关系,我找到了答案,我只需要在查询之前使用;WITH XMLNAMESPACES(DEFAULT 'http://www.w3.org/2001/XMLSchema-instance')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.