【发布时间】:2021-10-21 12:45:13
【问题描述】:
请你帮我一下好吗?我需要对 XML 文件进行查询,但是,它有一些不同之处,因为它在 XML 文档的开头有 epcis:。
所以,如果我尝试使用 epcis: 和 dts: 进行查询,结果是:
消息 2229,第 16 层,状态 1,第 38 行。
XQuery [nodes()]:名称“epcis”不表示名称空间。
如果我尝试在没有epcis: 和dts: 的情况下进行查询,则结果为空白。
BEGIN
DECLARE @archivo XML
SET @archivo = (
'<?xml version="1.0" encoding="utf-8"?>
<epcis:EPCISDocument xmlns:dts="urn:dts:extension:xsd" schemaVersion="1.2" creationDate="2021-06-30T07:29:32.6511940Z"
xmlns:epcis="urn:epcglobal:epcis:xsd:1">
<EPCISBody>
<EventList>
<ObjectEvent>
<eventTime>2021-06-30T07:29:32</eventTime>
<eventTimeZoneOffset>+02:00</eventTimeZoneOffset>
<action>OBSERVE</action>
<bizStep>code</bizStep>
<dts:epcItemList>
<item>
<epc>123456789</epc>
<code>123456789zz</code>
</item>
<item>
<epc>9687654321</epc>
<code>9687654321zz</code>
</item>
<item>
<epc>147258369</epc>
<code>147258369zz</code>
</item>
</dts:epcItemList>
</ObjectEvent>
</EventList>
</EPCISBody>
</epcis:EPCISDocument>'
)
SELECT
patch.r.value('(epc)[1]', 'varchar(100)') as [epc],
patch.r.value('(code)[1]', 'varchar(100)') as [code]
FROM
@archivo.nodes('EPCISDocument/EPCISBody/EventList/ObjectEvent/epcItemList/item') AS patch(r)
END
GO
我需要将信息导出为每个项目的 SQL 表,如下所示:
| epc | code |
| -------- | ------------ |
| 123456789 | 123456789zz |
| 9687654321 | 9687654321zz |
非常感谢 娟
【问题讨论】:
标签: sql sql-server xml xquery-sql