【发布时间】:2019-05-29 16:21:02
【问题描述】:
我正在处理由第 3 方托管的 SQL 数据,并试图提取一些特定信息以进行报告。但是,我需要解析的一些内容是 XML 格式的,我被卡住了。我正在寻找仅从 XML 代码中提取 text= 值的语法。
我相信代码应该是这样的,但是我可以在网上找到的大多数示例都涉及比我正在处理的更简单的 XML 层次结构。
<[columnnameXML].value('(/RelatedValueListBO/Items/RelatedValueListBOItem/text())[1]','varchar(max)')>
无法提取任何结果。我也尝试过声明空间名称,但又一次......我最终只得到了 NULL 值。
我正在处理的示例 XML:
<RelatedValueListBO xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://tempuri.org/RelatedValueListBOSchema.xsd">
<Items>
<RelatedValueListBOItem groupKey="Response1" text="Response1" selected="true" />
<RelatedValueListBOItem groupKey="Response2" text="Response2" selected="true" />
<RelatedValueListBOItem groupKey="Response3" text="Response3" selected="true" />
</Items>
</RelatedValueListBO>
理想情况下,我想拉响应1;响应2; response3 放入一列。考虑到可能存在多个响应的事实。我相信由于与 RelatedValueListBO 关联的命名空间以及我想要的内容被分组在 groupKey、text 和 selected 中的事实,我一直在尝试使用基本代码,而不是我想要的值。项目节点。
【问题讨论】:
-
您应该发布您正在使用的实际查询。在我看来,最有可能的问题是您在编写查询时没有考虑 xml 命名空间。
-
最好使用真正的编程语言,如 c#。
-
我假设您使用的是 SQL Server,请更新标签。