繁体   English   中英

如何使用xmlns属性更新或查询xml

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM