我正在尝试从 Xml 数据类型中获取一些值。数据如下:
<Individual xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName xmlns="http://nswcc.org.au/BusinessEntities.Crm">Lirria</FirstName>
<LastName xmlns="http://nswcc.org.au/BusinessEntities.Crm">Latimore</LastName>
</Indvidual>
注意元素 FirstName 和 LastName 中存在 xmlns - 这是在我们通过序列化 ac# 业务对象创建 xml 时添加的。无论如何,元素中此名称空间的存在似乎导致 XQuery 表达式失败,例如:
SELECT MyTable.value('(//Individual/LastName)[1]','nvarchar(100)') AS FirstName
这将返回 null。但是当我从 xml 中的元素中剔除命名空间时(例如,使用 Replace T-SQL 语句),上面会返回一个值。但是必须有更好的方法——有没有一种方法可以使这个查询工作,即不先更新 xml?
谢谢
约翰戴维斯