在SQL Server中,如何从没有标记的xml文件中读取xml数据?
我知道如何从信息以标记形式组织的文件中读取xml数据,我指的是这样的文件:在SQL Server中,如何从没有标记的xml文件中读取xml数据?,sql,sql-server,xml,Sql,Sql Server,Xml,我知道如何从信息以标记形式组织的文件中读取xml数据,我指的是这样的文件: <?xml version='1.0' encoding='UTF-8'?> <dataset> <Administrador> <id> 8 </id> <nombre> Nelle </nombre> <valorDocId> 8399335355 </valo
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<Administrador>
<id> 8 </id>
<nombre> Nelle </nombre>
<valorDocId> 8399335355 </valorDocId>
<contrasenna> Glenn </contrasenna>
</Administrador>
<Administrador>
<id> 9 </id>
<nombre> Gayler </nombre>
<valorDocId> 1310348693 </valorDocId>
<contrasenna> Madonna </contrasenna>
</Administrador>
</dataset>
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<Administrador id="1" nombre="Nelle" valorDocId="8399335355" contrasenna="Glenn"/>
<Administrador id="2" nombre="Gayler" valorDocId="1310348693" contrasenna="Madonna"/>
</dataset>
但现在我需要读取一个没有标记的xml文件,至少不像上一个,xml是这样的:
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<Administrador>
<id> 8 </id>
<nombre> Nelle </nombre>
<valorDocId> 8399335355 </valorDocId>
<contrasenna> Glenn </contrasenna>
</Administrador>
<Administrador>
<id> 9 </id>
<nombre> Gayler </nombre>
<valorDocId> 1310348693 </valorDocId>
<contrasenna> Madonna </contrasenna>
</Administrador>
</dataset>
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<Administrador id="1" nombre="Nelle" valorDocId="8399335355" contrasenna="Glenn"/>
<Administrador id="2" nombre="Gayler" valorDocId="1310348693" contrasenna="Madonna"/>
</dataset>
但是我以前使用的代码不起作用,它抛出一个错误,说我不能在列“id”中插入空值,所以我假设数据没有被读取。那么如何读取第二个文件呢?示例
Declare @XML xml = '
<dataset>
<Administrador id="1" nombre="Nelle" valorDocId="8399335355" contrasenna="Glenn"/>
<Administrador id="2" nombre="Gayler" valorDocId="1310348693" contrasenna="Madonna"/>
</dataset>
'
Select id = x.v.value('@id','int')
,nombre = x.v.value('@nombre','varchar(50)')
,valorDocId = x.v.value('@valorDocId','varchar(50)')
,contrasenna = x.v.value('@contrasenna','varchar(50)')
From @Xml.nodes('dataset/Administrador') x(v)
编辑-从文件中获取XML
Declare @XML xml = '
<dataset>
<Administrador id="1" nombre="Nelle" valorDocId="8399335355" contrasenna="Glenn"/>
<Administrador id="2" nombre="Gayler" valorDocId="1310348693" contrasenna="Madonna"/>
</dataset>
'
Select id = x.v.value('@id','int')
,nombre = x.v.value('@nombre','varchar(50)')
,valorDocId = x.v.value('@valorDocId','varchar(50)')
,contrasenna = x.v.value('@contrasenna','varchar(50)')
From @Xml.nodes('dataset/Administrador') x(v)
没有一种方法可以像另一种方法一样,在不处理变量中的xml内容的情况下读取所有信息?我有一个4k行的xml文件,这样做是不正确的。顺便说一句,我需要将读取的数据插入一个名为AdministradorMy XML的表中,或者我的XML在一个文件中,我需要将它的数据插入一个缺少插入表的表中,以将其插入到我需要的表中。感谢you@FabricioCeciliano很乐意帮忙